Commit a6ba6a64 authored by raymes@chromium.org's avatar raymes@chromium.org

Re-enable PDFExtensionTest.BasicPlugin

This test was disabled because it was failing. A few changes have been made:
-The page zoom cannot be assumed to be 100% on load as it will depend on the screen size being tested on. So testPageSize now doesn't make that assumption.
-testAccessibilityWithPage was flaking because accessibility information was not always returned for the two text boxes. I spent a bit of time investigating, but couldn't work it out so I've left it partially disabled for now and filed crbug.com/378091.
-The files have all been moved to a more appropriate location (in particular the test was moved out of the data directory).

BUG=303491

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=273819

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=274186

Review URL: https://codereview.chromium.org/290803007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278043 0039d316-1c4b-4281-b951-d872f2087c98
parent a46cb343
...@@ -35,6 +35,8 @@ PDFViewer.MIN_TOOLBAR_OFFSET = 15; ...@@ -35,6 +35,8 @@ PDFViewer.MIN_TOOLBAR_OFFSET = 15;
* document. * document.
*/ */
function PDFViewer() { function PDFViewer() {
this.loaded = false;
// The sizer element is placed behind the plugin element to cause scrollbars // The sizer element is placed behind the plugin element to cause scrollbars
// to be displayed in the window. It is sized according to the document size // to be displayed in the window. It is sized according to the document size
// of the pdf and zoom level. // of the pdf and zoom level.
...@@ -256,6 +258,7 @@ PDFViewer.prototype = { ...@@ -256,6 +258,7 @@ PDFViewer.prototype = {
} }
} else if (progress == 100) { } else if (progress == 100) {
// Document load complete. // Document load complete.
this.loaded = true;
var loadEvent = new Event('pdfload'); var loadEvent = new Event('pdfload');
window.dispatchEvent(loadEvent); window.dispatchEvent(loadEvent);
this.sendScriptingMessage_({ this.sendScriptingMessage_({
......
...@@ -37,7 +37,6 @@ class PDFExtensionTest : public ExtensionApiTest { ...@@ -37,7 +37,6 @@ class PDFExtensionTest : public ExtensionApiTest {
} }
void RunTestsInFile(std::string filename, bool requiresPlugin) { void RunTestsInFile(std::string filename, bool requiresPlugin) {
#if !defined(GOOGLE_CHROME_BUILD)
base::FilePath pdf_plugin_src; base::FilePath pdf_plugin_src;
PathService::Get(base::DIR_SOURCE_ROOT, &pdf_plugin_src); PathService::Get(base::DIR_SOURCE_ROOT, &pdf_plugin_src);
pdf_plugin_src = pdf_plugin_src.AppendASCII("pdf"); pdf_plugin_src = pdf_plugin_src.AppendASCII("pdf");
...@@ -46,7 +45,6 @@ class PDFExtensionTest : public ExtensionApiTest { ...@@ -46,7 +45,6 @@ class PDFExtensionTest : public ExtensionApiTest {
" because it requires the PDF plugin which is not available."; " because it requires the PDF plugin which is not available.";
return; return;
} }
#endif
ExtensionService* service = extensions::ExtensionSystem::Get( ExtensionService* service = extensions::ExtensionSystem::Get(
profile())->extension_service(); profile())->extension_service();
service->component_loader()->Add(IDR_PDF_MANIFEST, service->component_loader()->Add(IDR_PDF_MANIFEST,
...@@ -87,9 +85,16 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionTest, Basic) { ...@@ -87,9 +85,16 @@ IN_PROC_BROWSER_TEST_F(PDFExtensionTest, Basic) {
RunTestsInFile("basic_test.js", false); RunTestsInFile("basic_test.js", false);
} }
// TODO(raymes): investigate why this started failing after PDF plugin became // TODO(raymes): This fails with component builds on linux_chromium_chromeos_dbg
// open source. // bots because the plugin crashes due to something related to how the plugin
IN_PROC_BROWSER_TEST_F(PDFExtensionTest, DISABLED_BasicPlugin) { // DLL is compiled/linked when running ChromeOS on linux.
#if defined(OS_CHROMEOS) && defined(COMPONENT_BUILD)
#define MAYBE_BasicPlugin DISABLED_BasicPlugin
#else
#define MAYBE_BasicPlugin BasicPlugin
#endif
IN_PROC_BROWSER_TEST_F(PDFExtensionTest, MAYBE_BasicPlugin) {
RunTestsInFile("basic_plugin_test.js", true); RunTestsInFile("basic_plugin_test.js", true);
} }
......
...@@ -1331,6 +1331,7 @@ ...@@ -1331,6 +1331,7 @@
'browser/renderer_host/render_process_host_chrome_browsertest.cc', 'browser/renderer_host/render_process_host_chrome_browsertest.cc',
'browser/renderer_host/web_cache_manager_browsertest.cc', 'browser/renderer_host/web_cache_manager_browsertest.cc',
'browser/repost_form_warning_browsertest.cc', 'browser/repost_form_warning_browsertest.cc',
'browser/resources/pdf/pdf_extension_test.cc',
'browser/safe_browsing/local_safebrowsing_test_server.cc', 'browser/safe_browsing/local_safebrowsing_test_server.cc',
'browser/safe_browsing/safe_browsing_blocking_page_test.cc', 'browser/safe_browsing/safe_browsing_blocking_page_test.cc',
'browser/safe_browsing/safe_browsing_service_browsertest.cc', 'browser/safe_browsing/safe_browsing_service_browsertest.cc',
...@@ -1549,7 +1550,6 @@ ...@@ -1549,7 +1550,6 @@
'test/base/test_chrome_web_ui_controller_factory.h', 'test/base/test_chrome_web_ui_controller_factory.h',
'test/base/test_chrome_web_ui_controller_factory_browsertest.cc', 'test/base/test_chrome_web_ui_controller_factory_browsertest.cc',
'test/data/chromeos/oobe_webui_browsertest.js', 'test/data/chromeos/oobe_webui_browsertest.js',
'test/data/pdf/pdf_extension_test.cc',
'test/data/webui/about_invalidations_browsertest.js', 'test/data/webui/about_invalidations_browsertest.js',
'test/data/webui/accessibility_audit_browsertest.js', 'test/data/webui/accessibility_audit_browsertest.js',
'test/data/webui/assertions.js', 'test/data/webui/assertions.js',
......
...@@ -10,9 +10,10 @@ var tests = [ ...@@ -10,9 +10,10 @@ var tests = [
* Test that the page is sized to the size of the document. * Test that the page is sized to the size of the document.
*/ */
function testPageSize() { function testPageSize() {
// Verify that the initial zoom is 100%. // Verify that the initial zoom is less than or equal to 100%.
chrome.test.assertEq(1, viewer.viewport.zoom); chrome.test.assertTrue(viewer.viewport.zoom <= 1);
viewer.viewport.zoom = 1;
var sizer = document.getElementById('sizer'); var sizer = document.getElementById('sizer');
chrome.test.assertEq(826, sizer.offsetWidth); chrome.test.assertEq(826, sizer.offsetWidth);
chrome.test.assertEq(1066, sizer.offsetHeight); chrome.test.assertEq(1066, sizer.offsetHeight);
...@@ -23,8 +24,10 @@ var tests = [ ...@@ -23,8 +24,10 @@ var tests = [
var client = new PDFScriptingAPI(window, window.location.origin); var client = new PDFScriptingAPI(window, window.location.origin);
client.setDestinationWindow(window); client.setDestinationWindow(window);
client.getAccessibilityJSON(chrome.test.callbackPass(function(json) { client.getAccessibilityJSON(chrome.test.callbackPass(function(json) {
chrome.test.assertEq('{"copyable":true,"loaded":true,"numberOfPages":1}', var dict = JSON.parse(json);
json); chrome.test.assertEq(true, dict.copyable);
chrome.test.assertEq(true, dict.loaded);
chrome.test.assertEq(1, dict.numberOfPages);
})); }));
}, },
...@@ -47,6 +50,10 @@ var tests = [ ...@@ -47,6 +50,10 @@ var tests = [
} }
]; ];
window.addEventListener('pdfload', function() { if (viewer.loaded) {
chrome.test.runTests(tests); chrome.test.runTests(tests);
}); } else {
window.addEventListener('pdfload', function() {
chrome.test.runTests(tests);
});
}
...@@ -359,26 +359,26 @@ var tests = [ ...@@ -359,26 +359,26 @@ var tests = [
viewport.setZoom_(1); viewport.setZoom_(1);
mockCallback.reset(); mockCallback.reset();
viewport.goToPage(0) viewport.goToPage(0);
chrome.test.assertTrue(mockCallback.wasCalled); chrome.test.assertTrue(mockCallback.wasCalled);
chrome.test.assertEq(0, viewport.position.x); chrome.test.assertEq(0, viewport.position.x);
chrome.test.assertEq(0, viewport.position.y); chrome.test.assertEq(0, viewport.position.y);
mockCallback.reset(); mockCallback.reset();
viewport.goToPage(1) viewport.goToPage(1);
chrome.test.assertTrue(mockCallback.wasCalled); chrome.test.assertTrue(mockCallback.wasCalled);
chrome.test.assertEq(0, viewport.position.x); chrome.test.assertEq(0, viewport.position.x);
chrome.test.assertEq(100, viewport.position.y); chrome.test.assertEq(100, viewport.position.y);
mockCallback.reset(); mockCallback.reset();
viewport.goToPage(2) viewport.goToPage(2);
chrome.test.assertTrue(mockCallback.wasCalled); chrome.test.assertTrue(mockCallback.wasCalled);
chrome.test.assertEq(0, viewport.position.x); chrome.test.assertEq(0, viewport.position.x);
chrome.test.assertEq(300, viewport.position.y); chrome.test.assertEq(300, viewport.position.y);
viewport.setZoom_(0.5); viewport.setZoom_(0.5);
mockCallback.reset(); mockCallback.reset();
viewport.goToPage(2) viewport.goToPage(2);
chrome.test.assertTrue(mockCallback.wasCalled); chrome.test.assertTrue(mockCallback.wasCalled);
chrome.test.assertEq(0, viewport.position.x); chrome.test.assertEq(0, viewport.position.x);
chrome.test.assertEq(150, viewport.position.y); chrome.test.assertEq(150, viewport.position.y);
......
...@@ -408,7 +408,7 @@ void OutOfProcessInstance::HandleMessage(const pp::Var& message) { ...@@ -408,7 +408,7 @@ void OutOfProcessInstance::HandleMessage(const pp::Var& message) {
pp::VarDictionary reply; pp::VarDictionary reply;
reply.Set(pp::Var(kType), pp::Var(kJSGetAccessibilityJSONReplyType)); reply.Set(pp::Var(kType), pp::Var(kJSGetAccessibilityJSONReplyType));
if (dict.Get(pp::Var(kJSAccessibilityPageNumber)).is_int()) { if (dict.Get(pp::Var(kJSAccessibilityPageNumber)).is_int()) {
int page = pp::Var(kJSAccessibilityPageNumber).AsInt(); int page = dict.Get(pp::Var(kJSAccessibilityPageNumber)).AsInt();
reply.Set(pp::Var(kJSAccessibilityJSON), reply.Set(pp::Var(kJSAccessibilityJSON),
pp::Var(engine_->GetPageAsJSON(page))); pp::Var(engine_->GetPageAsJSON(page)));
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment