changeset 33:51e6b984dfc7

Refactored test suite.
author Atul Varma <varmaa@toolness.com>
date Tue, 14 Apr 2009 02:46:43 -0700
parents 68fa98bcc9b5
children f0e6614ac3b7
files tests.js
diffstat 1 files changed, 57 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/tests.js	Tue Apr 14 02:12:34 2009 -0700
+++ b/tests.js	Tue Apr 14 02:46:43 2009 -0700
@@ -34,7 +34,7 @@
           listener.onFinish(this);
           setTimeout(runNextTest, 0);
         };
-        test.func(test);
+        test.func.call(container, test);
         if (!test.isAsync)
           test.done();
         nextTest++;
@@ -57,55 +57,68 @@
     self.assertEqual(dict.getKeys().length, 1);
     self.assertEqual(dict.has('foo'), true);
   },
-  testDbView_async: function(self) {
+  _setupTestDb: function(cb) {
     BrowserCouch.get(
       "blarg",
       function(db) {
-        var progressCalled = false;
-        db.put(
-          [{id: "monkey",
-            content: "hello there dude"},
-           {id: "chunky",
-            content: "hello there dogen"}],
+        db.wipe(
           function() {
-            var timesProgressCalled = 0;
-            db.view(
-              {map: function(doc, emit) {
-                 var words = doc.content.split(" ");
-                 for (var i = 0; i < words.length; i++)
-                   emit(words[i], 1);
-               },
-               reduce: function(keys, values) {
-                 var sum = 0;
-                 for (var i = 0; i < values.length; i++)
-                   sum += values[i];
-                 return sum;
-               },
-               chunkSize: 1,
-               progress: function(phase, percentDone, resume) {
-                 if (phase == "map") {
-                   self.assertEqual(percentDone, 0.5);
-                   progressCalled = true;
-                 }
-                 resume();
-               },
-               finished: function(result) {
-                 self.assertEqual(progressCalled, true);
+            db.put(
+              [{id: "monkey",
+                content: "hello there dude"},
+               {id: "chunky",
+                content: "hello there dogen"}],
+              function() {
+                ModuleLoader.require(
+                  "JSON",
+                  function() { cb(db); }
+                );
+              }
+            );
+          });
+      });
+  },
+  _mapWordFrequencies: function(doc, emit) {
+    var words = doc.content.split(" ");
+    for (var i = 0; i < words.length; i++)
+      emit(words[i], 1);
+  },
+  _reduceWordFrequencies: function(keys, values) {
+    var sum = 0;
+    for (var i = 0; i < values.length; i++)
+      sum += values[i];
+    return sum;
+  },
+  testDbView_async: function(self) {
+    var map = this._mapWordFrequencies;
+    var reduce = this._reduceWordFrequencies;
+    this._setupTestDb(
+      function(db) {
+        var progressCalled = false;
+        var timesProgressCalled = 0;
+        db.view(
+          {map: map,
+           reduce: reduce,
+           chunkSize: 1,
+           progress: function(phase, percentDone, resume) {
+             if (phase == "map") {
+               self.assertEqual(percentDone, 0.5);
+               progressCalled = true;
+             }
+             resume();
+           },
+           finished: function(result) {
+             self.assertEqual(progressCalled, true);
 
-                 var expected = {rows: [{key: "dogen", value: 1},
-                                        {key: "dude", value: 1},
-                                        {key: "hello", value: 2},
-                                        {key: "there", value: 2}]};
+             var expected = {rows: [{key: "dogen", value: 1},
+                                    {key: "dude", value: 1},
+                                    {key: "hello", value: 2},
+                                    {key: "there", value: 2}]};
 
-                 ModuleLoader.require(
-                   "JSON",
-                   function() {
-                     self.assertEqual(JSON.stringify(expected),
-                                      JSON.stringify(result));
-                     self.done();
-                   });
-               }});
-          });
+             self.assertEqual(JSON.stringify(expected),
+                              JSON.stringify(result));
+             self.done();
+           }});
       });
   }
 };