| Index: chrome/test/data/extensions/platform_apps/browser_tag_src_attribute/main.js
 | 
| diff --git a/chrome/test/data/extensions/platform_apps/browser_tag_src_attribute/main.js b/chrome/test/data/extensions/platform_apps/browser_tag_src_attribute/main.js
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..26342da6551c7b13c56066b892cf22c28ff1ecbe
 | 
| --- /dev/null
 | 
| +++ b/chrome/test/data/extensions/platform_apps/browser_tag_src_attribute/main.js
 | 
| @@ -0,0 +1,56 @@
 | 
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 | 
| +// Use of this source code is governed by a BSD-style license that can be
 | 
| +// found in the LICENSE file.
 | 
| +
 | 
| +var checkSrc = function(element, expectedValue) {
 | 
| +  // Note that element.getAttribute('src') should not be used, it can be out of
 | 
| +  // sync with element.src.
 | 
| +  chrome.test.assertEq(expectedValue, element.src);
 | 
| +};
 | 
| +
 | 
| +onload = function() {
 | 
| +  chrome.test.runTests([
 | 
| +    function browserTag() {
 | 
| +      var expectedSrcOne = 'data:text/html,<body>One</body>';
 | 
| +      var expectedSrcTwo = 'data:text/html,<body>Two</body>';
 | 
| +      var expectedSrcThree = 'data:text/html,<body>Three</body>';
 | 
| +
 | 
| +      // For setting src, we check if both browserTag.setAttribute('src', ?);
 | 
| +      // and browserTag.src = ?; works propertly.
 | 
| +      var browserTag = document.querySelector('browser');
 | 
| +
 | 
| +      // Check if initial src is set correctly.
 | 
| +      checkSrc(browserTag, expectedSrcOne);
 | 
| +
 | 
| +      // Change the src.
 | 
| +      browserTag.setAttribute('src', expectedSrcTwo);
 | 
| +
 | 
| +      // Timeout is necessary to give the mutation observers a chance to fire.
 | 
| +      setTimeout(function() {
 | 
| +        // Expect the src change to be reflected.
 | 
| +        checkSrc(browserTag, expectedSrcTwo);
 | 
| +        // Set src attribute directly on the element.
 | 
| +        browserTag.src = expectedSrcThree;
 | 
| +        setTimeout(function() {
 | 
| +          // Expect the src change to be reflected.
 | 
| +          checkSrc(browserTag, expectedSrcThree);
 | 
| +          // Set empty src, this will be ignored.
 | 
| +          browserTag.setAttribute('src', '');
 | 
| +
 | 
| +          setTimeout(function() {
 | 
| +            // Expect empty src to be ignored.
 | 
| +            checkSrc(browserTag, expectedSrcThree);
 | 
| +            // Set empty src again, directly changing the src attribute.
 | 
| +            browserTag.src = '';
 | 
| +
 | 
| +            setTimeout(function() {
 | 
| +              // Expect empty src to be ignored.
 | 
| +              checkSrc(browserTag, expectedSrcThree);
 | 
| +              chrome.test.succeed();
 | 
| +            }, 0);
 | 
| +          }, 0);
 | 
| +        }, 0);
 | 
| +      }, 0);
 | 
| +    }
 | 
| +  ]);
 | 
| +};
 | 
| 
 |