Permalink
Browse files

[SERVER-1988]: added unit test

  • Loading branch information...
agirbal committed Dec 17, 2010
1 parent 1dc486d commit 4f10562afc2e8aed5b978ed858c223325c45e907
Showing with 29 additions and 3 deletions.
  1. +29 −3 jstests/basic3.js
View
@@ -3,14 +3,13 @@ t = db.getCollection( "foo_basic3" );
t.find( { "a.b" : 1 } ).toArray();
-ok = false;
+ok = true;
try{
t.save( { "a.b" : 5 } );
ok = false;
}
catch ( e ){
- ok = true;
}
assert( ok , ". in names aren't allowed doesn't work" );
@@ -19,6 +18,33 @@ try{
ok = false;
}
catch ( e ){
- ok = true;
}
assert( ok , ". in embedded names aren't allowed doesn't work" );
+
+// following tests make sure update keys are checked
+t.save({"a": 0,"b": 1})
+try {
+ t.update({"a": 0}, {"b.b": 1});
+ ok = false;
+} catch (e) {}
+assert( ok , "must deny '.' in key of update" );
+
+// upsert with embedded doc
+try {
+ t.update({"a": 10}, {"b": { "c.c" : 1 }}, true);
+ ok = false;
+} catch (e) {}
+assert( ok , "must deny '.' in key of update" );
+
+// if it is a modifier, it should still go through
+t.update({"a": 0}, {$set: { "c.c": 1}})
+t.update({"a": 0}, {$inc: { "c.c": 1}})
+
+// edge cases
+try {
+ t.update({"a": 0}, {"": { "c.c": 1}})
+ ok = false;
+} catch (e) {}
+assert( ok , "must deny '.' in key of update" );
+t.update({"a": 0}, {})
+

0 comments on commit 4f10562

Please sign in to comment.