Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3425)

Unified Diff: chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_util_test.extjs

Issue 1457683009: Complete live region support in ChromeVox Next. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed last feedback Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_util_test.extjs
diff --git a/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_util_test.extjs b/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_util_test.extjs
index 2c75b9fc26bea3c972fe4f6d44892d6770432128..86ff2bf25fe2d5605790408f7c7a58edb58667b5 100644
--- a/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_util_test.extjs
+++ b/chrome/browser/resources/chromeos/chromevox/cvox2/background/automation_util_test.extjs
@@ -25,6 +25,22 @@ AutomationUtilE2ETest.prototype = {
basicDoc: function() {/*!
<p><a href='#'></a>hello</p>
<h1><ul><li>a</ul><button></h1>
+ */},
+
+ secondDoc: function() {/*!
+ <html>
+ <head><title>Second doc</title></head>
+ <body><div>Second</div></body>
+ </html>
+ */},
+
+ iframeDoc: function() {/*!
+ <html>
+ <head><title>Second doc</title></head>
+ <body>
+ <iframe src="data:text/html,<p>Inside</p>"></iframe>
+ </body>
+ </html>
*/}
};
@@ -97,6 +113,61 @@ TEST_F('AutomationUtilE2ETest', 'GetDirection', function() {
right = right.lastChild;
assertEquals(Dir.BACKWARD, AutomationUtil.getDirection(right, left));
assertEquals(Dir.FORWARD, AutomationUtil.getDirection(left, right));
-
});
});
+
+TEST_F('AutomationUtilE2ETest', 'IsInSameWebpage', function() {
+ this.runWithLoadedTree(this.basicDoc, function(root) {
+ this.runWithLoadedTree(this.secondDoc, function(root2) {
+ chrome.automation.getDesktop(this.newCallback(function(desktop) {
+ assertTrue(AutomationUtil.isInSameWebpage(root, root));
+ assertTrue(AutomationUtil.isInSameWebpage(root.firstChild, root));
+ assertTrue(AutomationUtil.isInSameWebpage(root, root.firstChild));
+
+ assertTrue(AutomationUtil.isInSameWebpage(root2, root2));
+ assertTrue(AutomationUtil.isInSameWebpage(root2.firstChild, root2));
+ assertTrue(AutomationUtil.isInSameWebpage(root2, root2.firstChild));
+
+ assertFalse(AutomationUtil.isInSameWebpage(root, root2));
+ assertFalse(AutomationUtil.isInSameWebpage(root.firstChild, root2));
+ assertFalse(AutomationUtil.isInSameWebpage(root2.firstChild));
+ assertFalse(AutomationUtil.isInSameWebpage(
+ root.firstChild, root2.firstChild));
+
+ assertFalse(AutomationUtil.isInSameWebpage(root, desktop));
+ assertFalse(AutomationUtil.isInSameWebpage(root2, desktop));
+ }.bind(this)));
+ }.bind(this));
+ }.bind(this));
+});
+
+TEST_F('AutomationUtilE2ETest', 'IsInSameWebpageIframe', function() {
+ // Wait for load complete on both outer frame and iframe.
+ var outerFrame;
+ var innerFrame;
+ var desktop;
+ var onSuccess = this.newCallback(function() {
+ assertTrue(AutomationUtil.isInSameWebpage(outerFrame, innerFrame));
+ assertFalse(AutomationUtil.isInSameWebpage(outerFrame, desktop));
+ assertFalse(AutomationUtil.isInSameWebpage(innerFrame, desktop));
+ assertFalse(AutomationUtil.isInSameWebpage(outerFrame.parent, innerFrame));
+ }.bind(this));
+
+ chrome.automation.getDesktop(function(r) {
+ desktop = r;
+ this.runWithTab(this.iframeDoc, function(newTabUrl) {
+ var listener = function(evt) {
+ if (evt.target.docUrl == newTabUrl)
+ outerFrame = evt.target;
+ if (evt.target.docUrl.indexOf('data:text/html') == 0)
+ innerFrame = evt.target;
+
+ if (outerFrame && innerFrame) {
+ desktop.removeEventListener('loadComplete', listener, true);
+ onSuccess();
+ }
+ }.bind(this);
+ desktop.addEventListener('loadComplete', listener, true);
+ }.bind(this));
+ }.bind(this));
+});

Powered by Google App Engine
This is Rietveld 408576698