diff options
author | Siyuan Zhou <siyuan.zhou@mongodb.com> | 2014-03-03 17:15:39 -0500 |
---|---|---|
committer | Matt Kangas <matt.kangas@mongodb.com> | 2014-03-03 22:54:14 -0500 |
commit | 93d8befdbac74fb965faa4d3a8ae3e60d5a7a5b9 (patch) | |
tree | b1be042b0d074266fb417177b33aa0f266a3f38b /jstests/rename8.js | |
parent | 3660343e0b4627d2fee4afb89b74d32644d16d18 (diff) | |
download | mongo-93d8befdbac74fb965faa4d3a8ae3e60d5a7a5b9.tar.gz |
SERVER-12127 Temporarily put back jstest in order not to lose test coverage.
Signed-off-by: Matt Kangas <matt.kangas@mongodb.com>
Diffstat (limited to 'jstests/rename8.js')
-rw-r--r-- | jstests/rename8.js | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/jstests/rename8.js b/jstests/rename8.js new file mode 100644 index 00000000000..8b955824ea8 --- /dev/null +++ b/jstests/rename8.js @@ -0,0 +1,25 @@ +// SERVER-12591: prevent renaming to arbitrary system collections. + +var testdb = db.getSiblingDB("rename8"); // to avoid breaking other tests when we touch system.users +var coll = testdb.rename8; +var systemNamespaces = testdb.system.namespaces; +var systemFoo = testdb.system.foo; +var systemUsers = testdb.system.users; + +systemFoo.drop(); +systemUsers.drop(); +coll.drop(); +coll.insert({}); + +// system.foo isn't in the whitelist so it can't be renamed to or from +assert.commandFailed(coll.renameCollection(systemFoo.getName())); +assert.commandFailed(systemFoo.renameCollection(coll.getName())); + +// same with system.namespaces, even though it does exist +assert.commandFailed(coll.renameCollection(systemNamespaces.getName())); +assert.commandFailed(coll.renameCollection(systemNamespaces.getName(), /*dropTarget*/true)); +assert.commandFailed(systemNamespaces.renameCollection(coll.getName())); + +// system.users is whitelisted so these should work +assert.commandWorked(coll.renameCollection(systemUsers.getName())); +assert.commandWorked(systemUsers.renameCollection(coll.getName())); |