OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 var util = {}; | 5 var util = {}; |
6 var embedder = {}; | 6 var embedder = {}; |
7 embedder.baseGuestURL = ''; | 7 embedder.baseGuestURL = ''; |
8 embedder.emptyGuestURL = ''; | 8 embedder.emptyGuestURL = ''; |
9 embedder.windowOpenGuestURL = ''; | 9 embedder.windowOpenGuestURL = ''; |
10 embedder.noReferrerGuestURL = ''; | 10 embedder.noReferrerGuestURL = ''; |
(...skipping 2538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2549 ); | 2549 ); |
2550 } | 2550 } |
2551 ); | 2551 ); |
2552 } | 2552 } |
2553 ); | 2553 ); |
2554 }); | 2554 }); |
2555 }); | 2555 }); |
2556 document.body.appendChild(webview); | 2556 document.body.appendChild(webview); |
2557 }; | 2557 }; |
2558 | 2558 |
2559 var testFindPage = | |
2560 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2561 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2562 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2563 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2564 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2565 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2566 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2567 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2568 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2569 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' + | |
2570 '<a href="about:blank">Click here!</a>'; | |
2571 | |
2559 function testFindAPI() { | 2572 function testFindAPI() { |
2560 var webview = new WebView(); | 2573 var webview = new WebView(); |
2561 webview.src = 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | 2574 webview.src = testFindPage; |
2562 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2563 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2564 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2565 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2566 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2567 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2568 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2569 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2570 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' + | |
2571 '<a href="about:blank">Click here!</a>'; | |
2572 | 2575 |
2573 var loadstopListener2 = function(e) { | 2576 var loadstopListener2 = function(e) { |
2574 embedder.test.assertEq(webview.src, "about:blank"); | 2577 embedder.test.assertEq(webview.src, "about:blank"); |
2575 // Test find results when looking for nothing. | 2578 // Test find results when looking for nothing. |
2576 webview.find("", {}, function(results) { | 2579 webview.find("", {}, function(results) { |
2577 embedder.test.assertEq(results.numberOfMatches, 0); | 2580 embedder.test.assertEq(results.numberOfMatches, 0); |
2578 embedder.test.assertEq(results.activeMatchOrdinal, 0); | 2581 embedder.test.assertEq(results.activeMatchOrdinal, 0); |
2579 embedder.test.assertEq(results.selectionRect.left, 0); | 2582 embedder.test.assertEq(results.selectionRect.left, 0); |
2580 embedder.test.assertEq(results.selectionRect.top, 0); | 2583 embedder.test.assertEq(results.selectionRect.top, 0); |
2581 embedder.test.assertEq(results.selectionRect.width, 0); | 2584 embedder.test.assertEq(results.selectionRect.width, 0); |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2635 }); | 2638 }); |
2636 }); | 2639 }); |
2637 }; | 2640 }; |
2638 | 2641 |
2639 webview.addEventListener('loadstop', loadstopListener1); | 2642 webview.addEventListener('loadstop', loadstopListener1); |
2640 document.body.appendChild(webview); | 2643 document.body.appendChild(webview); |
2641 }; | 2644 }; |
2642 | 2645 |
2643 function testFindAPI_findupdate() { | 2646 function testFindAPI_findupdate() { |
2644 var webview = new WebView(); | 2647 var webview = new WebView(); |
2645 webview.src = 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | 2648 webview.src = testFindPage; |
2646 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | 2649 |
2647 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2648 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2649 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2650 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2651 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2652 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2653 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + | |
2654 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' + | |
2655 '<a href="about:blank">Click here!</a>'; | |
2656 var canceledTest = false; | 2650 var canceledTest = false; |
2657 webview.addEventListener('loadstop', function(e) { | 2651 webview.addEventListener('loadstop', function(e) { |
2658 // Test the |findupdate| event. | 2652 // Test the |findupdate| event. |
2659 webview.addEventListener('findupdate', function(e) { | 2653 webview.addEventListener('findupdate', function(e) { |
2660 if (e.activeMatchOrdinal > 0) { | 2654 if (e.activeMatchOrdinal > 0) { |
2661 // embedder.test.assertTrue(e.numberOfMatches >= e.activeMatchOrdinal) | 2655 // embedder.test.assertTrue(e.numberOfMatches >= e.activeMatchOrdinal) |
2662 // This currently fails because of http://crbug.com/342445 . | 2656 // This currently fails because of http://crbug.com/342445 . |
2663 embedder.test.assertTrue(e.selectionRect.width > 0); | 2657 embedder.test.assertTrue(e.selectionRect.width > 0); |
2664 embedder.test.assertTrue(e.selectionRect.height > 0); | 2658 embedder.test.assertTrue(e.selectionRect.height > 0); |
2665 } | 2659 } |
(...skipping 11 matching lines...) Expand all Loading... | |
2677 } | 2671 } |
2678 }); | 2672 }); |
2679 wv.find("dog"); | 2673 wv.find("dog"); |
2680 wv.find("cat"); | 2674 wv.find("cat"); |
2681 wv.find("dog"); | 2675 wv.find("dog"); |
2682 }); | 2676 }); |
2683 | 2677 |
2684 document.body.appendChild(webview); | 2678 document.body.appendChild(webview); |
2685 }; | 2679 }; |
2686 | 2680 |
2681 function testFindInMultipleWebViews() { | |
2682 var webviews = [new WebView(), new WebView(), new WebView()]; | |
2683 var success = []; | |
2684 for (var i in webviews) { | |
2685 webviews[i].src = testFindPage; | |
2686 success[i] = false; | |
2687 } | |
2688 | |
2689 var loadstopListener = function(id, e) { | |
2690 LOG("Searching WebView " + id + "."); | |
2691 | |
2692 // Test find results. | |
2693 webviews[id].find("dog", {}, function(results) { | |
2694 embedder.test.assertEq(results.numberOfMatches, 100); | |
2695 embedder.test.assertTrue(results.selectionRect.width > 0); | |
2696 embedder.test.assertTrue(results.selectionRect.height > 0); | |
2697 | |
2698 // Test finding next active matches. | |
2699 webviews[id].find("dog"); | |
2700 webviews[id].find("dog"); | |
2701 webviews[id].find("dog"); | |
2702 webviews[id].find("dog"); | |
2703 webviews[id].find("dog", {}, function(results) { | |
2704 embedder.test.assertEq(results.activeMatchOrdinal, 6); | |
2705 | |
2706 LOG("Searched WebView " + id + " successfully."); | |
2707 success[id] = true; | |
2708 for (var i in success) { | |
ncarter (slow)
2017/03/27 23:21:36
You can use Promise.all here to avoid the |success
paulmeyer
2017/03/31 18:31:16
Okay, I've replaced the test with your code mostly
| |
2709 if (!success[i]) { | |
2710 return; | |
2711 } | |
2712 } | |
2713 | |
2714 // The test only succeeds once all WebViews have been searched | |
2715 // successfully. | |
2716 embedder.test.succeed(); | |
2717 }); | |
2718 }); | |
2719 }; | |
2720 | |
2721 // Search in all WebViews simultaneously. | |
2722 for (var i in webviews) { | |
2723 webviews[i].addEventListener( | |
2724 'loadstop', loadstopListener.bind(undefined, i)); | |
2725 document.body.appendChild(webviews[i]); | |
2726 } | |
2727 } | |
2728 | |
2687 function testLoadDataAPI() { | 2729 function testLoadDataAPI() { |
2688 var webview = new WebView(); | 2730 var webview = new WebView(); |
2689 webview.src = 'about:blank'; | 2731 webview.src = 'about:blank'; |
2690 | 2732 |
2691 var loadstopListener2 = function(e) { | 2733 var loadstopListener2 = function(e) { |
2692 // Test the virtual URL. | 2734 // Test the virtual URL. |
2693 embedder.test.assertEq(webview.src, embedder.virtualURL); | 2735 embedder.test.assertEq(webview.src, embedder.virtualURL); |
2694 | 2736 |
2695 // Test that the image was loaded from the right source. | 2737 // Test that the image was loaded from the right source. |
2696 webview.executeScript( | 2738 webview.executeScript( |
(...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
3135 'testRemoveWebviewOnExit': testRemoveWebviewOnExit, | 3177 'testRemoveWebviewOnExit': testRemoveWebviewOnExit, |
3136 'testRemoveWebviewAfterNavigation': testRemoveWebviewAfterNavigation, | 3178 'testRemoveWebviewAfterNavigation': testRemoveWebviewAfterNavigation, |
3137 'testResizeWebviewResizesContent': testResizeWebviewResizesContent, | 3179 'testResizeWebviewResizesContent': testResizeWebviewResizesContent, |
3138 'testResizeWebviewWithDisplayNoneResizesContent': | 3180 'testResizeWebviewWithDisplayNoneResizesContent': |
3139 testResizeWebviewWithDisplayNoneResizesContent, | 3181 testResizeWebviewWithDisplayNoneResizesContent, |
3140 'testPostMessageCommChannel': testPostMessageCommChannel, | 3182 'testPostMessageCommChannel': testPostMessageCommChannel, |
3141 'testScreenshotCapture' : testScreenshotCapture, | 3183 'testScreenshotCapture' : testScreenshotCapture, |
3142 'testZoomAPI' : testZoomAPI, | 3184 'testZoomAPI' : testZoomAPI, |
3143 'testFindAPI': testFindAPI, | 3185 'testFindAPI': testFindAPI, |
3144 'testFindAPI_findupdate': testFindAPI, | 3186 'testFindAPI_findupdate': testFindAPI, |
3187 'testFindInMultipleWebViews': testFindInMultipleWebViews, | |
3145 'testLoadDataAPI': testLoadDataAPI, | 3188 'testLoadDataAPI': testLoadDataAPI, |
3146 'testResizeEvents': testResizeEvents, | 3189 'testResizeEvents': testResizeEvents, |
3147 'testPerOriginZoomMode': testPerOriginZoomMode, | 3190 'testPerOriginZoomMode': testPerOriginZoomMode, |
3148 'testPerViewZoomMode': testPerViewZoomMode, | 3191 'testPerViewZoomMode': testPerViewZoomMode, |
3149 'testDisabledZoomMode': testDisabledZoomMode, | 3192 'testDisabledZoomMode': testDisabledZoomMode, |
3150 'testZoomBeforeNavigation': testZoomBeforeNavigation, | 3193 'testZoomBeforeNavigation': testZoomBeforeNavigation, |
3151 'testPlugin': testPlugin, | 3194 'testPlugin': testPlugin, |
3152 'testGarbageCollect': testGarbageCollect, | 3195 'testGarbageCollect': testGarbageCollect, |
3153 'testCloseNewWindowCleanup': testCloseNewWindowCleanup, | 3196 'testCloseNewWindowCleanup': testCloseNewWindowCleanup, |
3154 'testFocusWhileFocused': testFocusWhileFocused, | 3197 'testFocusWhileFocused': testFocusWhileFocused, |
3155 'testPDFInWebview': testPDFInWebview, | 3198 'testPDFInWebview': testPDFInWebview, |
3156 'testNavigateToPDFInWebview': testNavigateToPDFInWebview, | 3199 'testNavigateToPDFInWebview': testNavigateToPDFInWebview, |
3157 'testMailtoLink': testMailtoLink, | 3200 'testMailtoLink': testMailtoLink, |
3158 'testRendererNavigationRedirectWhileUnattached': | 3201 'testRendererNavigationRedirectWhileUnattached': |
3159 testRendererNavigationRedirectWhileUnattached, | 3202 testRendererNavigationRedirectWhileUnattached, |
3160 'testBlobURL': testBlobURL | 3203 'testBlobURL': testBlobURL |
3161 }; | 3204 }; |
3162 | 3205 |
3163 onload = function() { | 3206 onload = function() { |
3164 chrome.test.getConfig(function(config) { | 3207 chrome.test.getConfig(function(config) { |
3165 embedder.setUp_(config); | 3208 embedder.setUp_(config); |
3166 chrome.test.sendMessage("Launched"); | 3209 chrome.test.sendMessage("Launched"); |
3167 }); | 3210 }); |
3168 }; | 3211 }; |
OLD | NEW |