| 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));
|
| +});
|
|
|