Chromium Code Reviews| 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 |