Index: chrome/test/data/extensions/platform_apps/web_view/shim/main.js |
diff --git a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js |
index ddabbcd9030fb80066bfd819e024afe440da5e38..b5cffe3f0ffe75864fbaa762243e81775ece2b81 100644 |
--- a/chrome/test/data/extensions/platform_apps/web_view/shim/main.js |
+++ b/chrome/test/data/extensions/platform_apps/web_view/shim/main.js |
@@ -2556,19 +2556,22 @@ function testZoomAPI() { |
document.body.appendChild(webview); |
}; |
+var testFindPage = |
+ 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
+ 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' + |
+ '<a href="about:blank">Click here!</a>'; |
+ |
function testFindAPI() { |
var webview = new WebView(); |
- webview.src = 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' + |
- '<a href="about:blank">Click here!</a>'; |
+ webview.src = testFindPage; |
var loadstopListener2 = function(e) { |
embedder.test.assertEq(webview.src, "about:blank"); |
@@ -2642,17 +2645,8 @@ function testFindAPI() { |
function testFindAPI_findupdate() { |
var webview = new WebView(); |
- webview.src = 'data:text/html,Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br>' + |
- 'Dog dog dog Dog dog dogcatDog dogDogdog.<br><br>' + |
- '<a href="about:blank">Click here!</a>'; |
+ webview.src = testFindPage; |
+ |
var canceledTest = false; |
webview.addEventListener('loadstop', function(e) { |
// Test the |findupdate| event. |
@@ -2683,6 +2677,50 @@ function testFindAPI_findupdate() { |
document.body.appendChild(webview); |
}; |
+function testFindInMultipleWebViews() { |
+ var webviews = [new WebView(), new WebView(), new WebView()]; |
+ var promises = []; |
+ |
+ // Search in all WebViews simultaneously. |
+ for (var i in webviews) { |
+ webviews[i].src = testFindPage; |
+ promises[i] = new Promise((resolve, reject) => { |
+ webviews[i].addEventListener('loadstop', function(id, event) { |
+ LOG("Searching WebView " + id + "."); |
+ |
+ var webview = webviews[id]; |
+ webview.find("dog", {}, (results_a) => { |
+ embedder.test.assertEq(results_a.numberOfMatches, 100); |
+ embedder.test.assertTrue(results_a.selectionRect.width > 0); |
+ embedder.test.assertTrue(results_a.selectionRect.height > 0); |
+ |
+ // Test finding next active matches. |
+ webview.find("dog"); |
+ webview.find("dog"); |
+ webview.find("dog"); |
+ webview.find("dog"); |
+ webview.find("dog", {}, (results_b) => { |
+ embedder.test.assertEq(results_b.activeMatchOrdinal, 6); |
+ LOG("Searched WebView " + id + " successfully."); |
+ resolve(); |
+ }); |
+ }); |
+ }.bind(undefined, i)); |
+ }); |
+ document.body.appendChild(webviews[i]); |
+ } |
+ |
+ Promise.all(promises) |
+ .then(() => { |
+ LOG("All searches finished."); |
+ embedder.test.succeed(); |
+ }) |
+ .catch((error) => { |
+ LOG("Failing test."); |
+ embedder.test.fail(error); |
+ }); |
+} |
+ |
function testLoadDataAPI() { |
var webview = new WebView(); |
webview.src = 'about:blank'; |
@@ -3141,6 +3179,7 @@ embedder.test.testList = { |
'testZoomAPI' : testZoomAPI, |
'testFindAPI': testFindAPI, |
'testFindAPI_findupdate': testFindAPI_findupdate, |
+ 'testFindInMultipleWebViews': testFindInMultipleWebViews, |
'testLoadDataAPI': testLoadDataAPI, |
'testResizeEvents': testResizeEvents, |
'testPerOriginZoomMode': testPerOriginZoomMode, |