]> git.parisson.com Git - pdf.js.git/commitdiff
mc tests- fixing intermittent crashes
authorArtur Adib <arturadib@gmail.com>
Thu, 24 May 2012 20:11:32 +0000 (16:11 -0400)
committerArtur Adib <arturadib@gmail.com>
Thu, 24 May 2012 20:11:32 +0000 (16:11 -0400)
test/mozcentral/Makefile.in
test/mozcentral/browser_pdfjs_main.js
test/mozcentral/browser_pdfjs_zoom.js [deleted file]

index fd40574ef395f9aa086668d4e414d6e61bff73b0..8c9face17785edbb0a98ee3818a8ca17c37f9550 100644 (file)
@@ -14,7 +14,6 @@ include $(topsrcdir)/config/rules.mk
 _BROWSER_TEST_FILES = \
   head.js \
   browser_pdfjs_main.js \
-  browser_pdfjs_zoom.js \
   file_pdfjs_test.pdf \
   $(NULL)
 
index 5f07e65129285dfb6f40cd96126b3309c3525cfb..9aab295c5357c37c3ad219d408c361028ef704a4 100644 (file)
@@ -6,78 +6,85 @@ const RELATIVE_DIR = "browser/extensions/pdfjs/test/";
 const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR;
 
 function test() {
+  var tab;
+
   waitForExplicitFinish();
+  registerCleanupFunction(function() {
+    gBrowser.removeTab(tab);
+  });
 
-  var tab = gBrowser.addTab(TESTROOT + "file_pdfjs_test.pdf");
+  tab = gBrowser.addTab(TESTROOT + "file_pdfjs_test.pdf");
   var newTabBrowser = gBrowser.getBrowserForTab(tab);
-  newTabBrowser.addEventListener("pagechange", function onPageChange() {
-    newTabBrowser.removeEventListener("pagechange", onPageChange, true);
+  newTabBrowser.addEventListener("load", function eventHandler() {
+    newTabBrowser.removeEventListener("load", eventHandler, true);
 
     var document = newTabBrowser.contentDocument,
         window = newTabBrowser.contentWindow;
 
+    waitForElement(document, 'canvas#page1', function(err, page1) {
+      runTests(document, window);
+    });
+  }, true);
+}
+
+function runTests(document, window) {
+  //
+  // Overall sanity tests
+  //
+  ok(document.querySelector('div#viewer'), "document content has viewer UI");
+  ok('PDFJS' in window.wrappedJSObject, "window content has PDFJS object");
+
+  //
+  // Sidebar: open
+  //
+  var sidebar = document.querySelector('button#sidebarToggle'),
+      outerContainer = document.querySelector('div#outerContainer');
+
+  sidebar.click();
+  ok(outerContainer.classList.contains('sidebarOpen'), 'sidebar opens on click');
+
+  // Thumbnails are created asynchronously - wait for them
+  waitForElement(document, 'canvas#thumbnail2', function(error, thumbnail) {
+    if (error)
+      finish();
+
     //
-    // Overall sanity tests
+    // Page change from thumbnail click
     //
-    ok(document.querySelector('div#viewer'), "document content has viewer UI");
-    ok('PDFJS' in window.wrappedJSObject, "window content has PDFJS object");
+    var pageNumber = document.querySelector('input#pageNumber');
+    is(parseInt(pageNumber.value), 1, 'initial page is 1');
+
+    ok(thumbnail, 'thumbnail2 is available');
+    if (thumbnail) {
+      thumbnail.click();
+      is(parseInt(pageNumber.value), 2, 'clicking on thumbnail changes page');
+    }
 
     //
-    // Sidebar: open
+    // Sidebar: close
     //
-    var sidebar = document.querySelector('button#sidebarToggle'),
-        outerContainer = document.querySelector('div#outerContainer');
-
     sidebar.click();
-    ok(outerContainer.classList.contains('sidebarOpen'), 'sidebar opens on click');
-
-    // Thumbnails are created asynchronously - wait for them
-    waitForElement(document, 'canvas#thumbnail2', function(error, thumbnail) {
-      if (error)
-        finish();
-
-      //
-      // Page change from thumbnail click
-      //
-      var pageNumber = document.querySelector('input#pageNumber');
-      is(parseInt(pageNumber.value), 1, 'initial page is 1');
-
-      ok(thumbnail, 'thumbnail2 is available');
-      if (thumbnail) {
-        thumbnail.click();
-        is(parseInt(pageNumber.value), 2, 'clicking on thumbnail changes page');
-      }
-
-      //
-      // Sidebar: close
-      //
-      sidebar.click();
-      ok(!outerContainer.classList.contains('sidebarOpen'), 'sidebar closes on click');
-
-      //
-      // Page change from prev/next buttons
-      //
-      var prevPage = document.querySelector('button#previous'),
-          nextPage = document.querySelector('button#next');
-
-      nextPage.click();
-      is(parseInt(pageNumber.value), 2, 'page increases after clicking on next');
-
-      prevPage.click();
-      is(parseInt(pageNumber.value), 1, 'page decreases after clicking on previous');
-
-      //
-      // Bookmark button
-      //
-      var viewBookmark = document.querySelector('a#viewBookmark');
-      viewBookmark.click();
-      ok(viewBookmark.href.length > 0, 'viewBookmark button has href');
-    
-      finish();
-    });
-  }, true, true);
+    ok(!outerContainer.classList.contains('sidebarOpen'), 'sidebar closes on click');
 
-  registerCleanupFunction(function() {
-    gBrowser.removeTab(tab);
+    //
+    // Page change from prev/next buttons
+    //
+    var prevPage = document.querySelector('button#previous'),
+        nextPage = document.querySelector('button#next');
+
+    nextPage.click();
+    is(parseInt(pageNumber.value), 2, 'page increases after clicking on next');
+
+    prevPage.click();
+    is(parseInt(pageNumber.value), 1, 'page decreases after clicking on previous');
+
+    //
+    // Bookmark button
+    //
+    var viewBookmark = document.querySelector('a#viewBookmark');
+    viewBookmark.click();
+    ok(viewBookmark.href.length > 0, 'viewBookmark button has href');
+  
+    finish();
   });
 }
diff --git a/test/mozcentral/browser_pdfjs_zoom.js b/test/mozcentral/browser_pdfjs_zoom.js
deleted file mode 100644 (file)
index a6445da..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/
- */
-
-const RELATIVE_DIR = "browser/extensions/pdfjs/test/";
-const TESTROOT = "http://example.com/browser/" + RELATIVE_DIR;
-
-function test() {
-  waitForExplicitFinish();
-
-  var tab = gBrowser.addTab(TESTROOT + "file_pdfjs_test.pdf");
-  var newTabBrowser = gBrowser.getBrowserForTab(tab);
-  newTabBrowser.addEventListener("pagechange", function onPageChange() {
-    newTabBrowser.removeEventListener("pagechange", onPageChange, true);
-
-    var document = newTabBrowser.contentDocument,
-        window = newTabBrowser.contentWindow;
-
-    //
-    // Zoom in/out
-    //
-    var zoomOut = document.querySelector('button.zoomOut'),
-        zoomIn = document.querySelector('button.zoomIn');
-
-    var newWidth, oldWidth;
-
-    // We need to query the DOM every time since zoom in/out operations destroy the canvas element
-    waitForElement(document, 'canvas#page1', function(error, page1) {
-      if (error)
-        finish();
-      
-      oldWidth = page1.width;
-      zoomIn.click();
-
-      waitForElement(document, 'canvas#page1', function(error, page1) {
-        if (error)
-          finish();
-
-        newWidth = page1.width;
-        ok(oldWidth < newWidth, 'zooming in increases page width (old: '+oldWidth+', new: '+newWidth+')');
-
-        // Zoom out
-        oldWidth = newWidth;
-        zoomOut.click();
-        
-        waitForElement(document, 'canvas#page1', function(error, page1) {
-          if (error)
-            finish();
-
-          newWidth = page1.width;
-          ok(oldWidth > newWidth, 'zooming out decreases page width (old: '+oldWidth+', new: '+newWidth+')');
-
-          finish();
-        });
-      });
-    });
-
-  }, true, true);
-
-  registerCleanupFunction(function() {
-    gBrowser.removeTab(tab);
-  });
-}