| OLD | NEW | 
|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "chrome/browser/apps/app_browsertest_util.h" | 5 #include "chrome/browser/apps/app_browsertest_util.h" | 
| 6 #include "chrome/browser/extensions/extension_test_message_listener.h" | 6 #include "chrome/browser/extensions/extension_test_message_listener.h" | 
| 7 #include "chrome/common/chrome_switches.h" | 7 #include "chrome/common/chrome_switches.h" | 
| 8 #include "content/test/net/url_request_prepackaged_interceptor.h" | 8 #include "content/test/net/url_request_prepackaged_interceptor.h" | 
| 9 #include "net/url_request/url_fetcher.h" | 9 #include "net/url_request/url_fetcher.h" | 
| 10 | 10 | 
| 11 class AdViewTest : public extensions::PlatformAppBrowserTest { | 11 class AdViewTest : public extensions::PlatformAppBrowserTest { | 
| 12  protected: | 12  protected: | 
| 13   virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 13   virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 
| 14     extensions::PlatformAppBrowserTest::SetUpCommandLine(command_line); | 14     extensions::PlatformAppBrowserTest::SetUpCommandLine(command_line); | 
| 15     command_line->AppendSwitch(switches::kEnableAdview); | 15     command_line->AppendSwitch(switches::kEnableAdview); | 
| 16     command_line->AppendSwitch(switches::kEnableAdviewSrcAttribute); |  | 
| 17   } | 16   } | 
| 18 }; | 17 }; | 
| 19 | 18 | 
| 20 // This test checks the "loadcommit" event is called when the page inside an |  | 
| 21 // <adview> is loaded. |  | 
| 22 IN_PROC_BROWSER_TEST_F(AdViewTest, LoadCommitEventIsCalled) { |  | 
| 23   ASSERT_TRUE(StartEmbeddedTestServer()); |  | 
| 24 |  | 
| 25   ASSERT_TRUE(RunPlatformAppTest( |  | 
| 26       "platform_apps/ad_view/loadcommit_event")) << message_; |  | 
| 27 } |  | 
| 28 |  | 
| 29 // This test checks the "loadabort" event is called when the "src" attribute |  | 
| 30 // of an <adview> is an invalid URL. |  | 
| 31 IN_PROC_BROWSER_TEST_F(AdViewTest, LoadAbortEventIsCalled) { |  | 
| 32   ASSERT_TRUE(StartEmbeddedTestServer()); |  | 
| 33 |  | 
| 34   ASSERT_TRUE(RunPlatformAppTest( |  | 
| 35       "platform_apps/ad_view/loadabort_event")) << message_; |  | 
| 36 } |  | 
| 37 |  | 
| 38 // This test checks the page loaded inside an <adview> has the ability to |  | 
| 39 // 1) receive "message" events from the application, and 2) use |  | 
| 40 // "window.postMessage" to post back a message to the application. |  | 
| 41 #if defined(OS_WIN) |  | 
| 42 // Flaky, or takes too long time on Win7. (http://crbug.com/230271) |  | 
| 43 #define MAYBE_CommitMessageFromAdNetwork DISABLED_CommitMessageFromAdNetwork |  | 
| 44 #else |  | 
| 45 #define MAYBE_CommitMessageFromAdNetwork CommitMessageFromAdNetwork |  | 
| 46 #endif |  | 
| 47 IN_PROC_BROWSER_TEST_F(AdViewTest, MAYBE_CommitMessageFromAdNetwork) { |  | 
| 48   ASSERT_TRUE(StartEmbeddedTestServer()); |  | 
| 49 |  | 
| 50   ASSERT_TRUE(RunPlatformAppTest( |  | 
| 51       "platform_apps/ad_view/onloadcommit_ack")) << message_; |  | 
| 52 } |  | 
| 53 |  | 
| 54 // This test checks the page running inside an <adview> has the ability to load |  | 
| 55 // and display an image inside an <iframe>. |  | 
| 56 // Note: Disabled for initial checkin because the test depends on a binary |  | 
| 57 //       file (image035.png) which the trybots don't process correctly when |  | 
| 58 //       first checked-in. |  | 
| 59 IN_PROC_BROWSER_TEST_F(AdViewTest, DISABLED_DisplayFirstAd) { |  | 
| 60   ASSERT_TRUE(StartEmbeddedTestServer()); |  | 
| 61 |  | 
| 62   ASSERT_TRUE(RunPlatformAppTest( |  | 
| 63       "platform_apps/ad_view/display_first_ad")) << message_; |  | 
| 64 } |  | 
| 65 |  | 
| 66 // This test checks that <adview> attributes are also exposed as properties | 19 // This test checks that <adview> attributes are also exposed as properties | 
| 67 // (with the same name and value). | 20 // (with the same name and value). | 
| 68 #if defined(OS_WIN) | 21 #if defined(OS_WIN) | 
| 69 // Flaky on Win XP. (http://crbug.com/264362) | 22 // Flaky on Win XP. (http://crbug.com/264362) | 
| 70 #define MAYBE_PropertiesAreInSyncWithAttributes \ | 23 #define MAYBE_PropertiesAreInSyncWithAttributes \ | 
| 71     DISABLED_PropertiesAreInSyncWithAttributes | 24     DISABLED_PropertiesAreInSyncWithAttributes | 
| 72 #else | 25 #else | 
| 73 #define MAYBE_PropertiesAreInSyncWithAttributes \ | 26 #define MAYBE_PropertiesAreInSyncWithAttributes \ | 
| 74     PropertiesAreInSyncWithAttributes | 27     PropertiesAreInSyncWithAttributes | 
| 75 #endif | 28 #endif | 
| 76 IN_PROC_BROWSER_TEST_F(AdViewTest, MAYBE_PropertiesAreInSyncWithAttributes) { | 29 IN_PROC_BROWSER_TEST_F(AdViewTest, MAYBE_PropertiesAreInSyncWithAttributes) { | 
| 77   ASSERT_TRUE(StartEmbeddedTestServer()); | 30   ASSERT_TRUE(StartEmbeddedTestServer()); | 
| 78 | 31 | 
| 79   ASSERT_TRUE(RunPlatformAppTest( | 32   ASSERT_TRUE(RunPlatformAppTest( | 
| 80       "platform_apps/ad_view/properties_exposed")) << message_; | 33       "platform_apps/ad_view/properties_exposed")) << message_; | 
| 81 } | 34 } | 
| 82 | 35 | 
| 83 // This test checks an <adview> element has no behavior when the "adview" |  | 
| 84 // permission is missing from the application manifest. |  | 
| 85 IN_PROC_BROWSER_TEST_F(AdViewTest, AdViewPermissionIsRequired) { |  | 
| 86   ASSERT_TRUE(StartEmbeddedTestServer()); |  | 
| 87 |  | 
| 88   ASSERT_TRUE(RunPlatformAppTest( |  | 
| 89       "platform_apps/ad_view/permission_required")) << message_; |  | 
| 90 } |  | 
| 91 |  | 
| 92 // This test checks that 1) it is possible change the value of the "ad-network" |  | 
| 93 // attribute of an <adview> element and 2) changing the value will reset the |  | 
| 94 // "src" attribute. |  | 
| 95 // Broken test: http://crbug.com/257465. |  | 
| 96 IN_PROC_BROWSER_TEST_F(AdViewTest, DISABLED_ChangeAdNetworkValue) { |  | 
| 97   ASSERT_TRUE(StartEmbeddedTestServer()); |  | 
| 98 |  | 
| 99   ASSERT_TRUE(RunPlatformAppTest( |  | 
| 100       "platform_apps/ad_view/change_ad_network")) << message_; |  | 
| 101 } |  | 
| 102 |  | 
| 103 class AdViewNoSrcTest : public extensions::PlatformAppBrowserTest { |  | 
| 104  protected: |  | 
| 105   virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { |  | 
| 106     extensions::PlatformAppBrowserTest::SetUpCommandLine(command_line); |  | 
| 107     command_line->AppendSwitch(switches::kEnableAdview); |  | 
| 108     //Note: The "kEnableAdviewSrcAttribute" flag is not here! |  | 
| 109   } |  | 
| 110 }; |  | 
| 111 |  | 
| 112 // This test checks an invalid "ad-network" value (i.e. not whitelisted) | 36 // This test checks an invalid "ad-network" value (i.e. not whitelisted) | 
| 113 // is ignored. | 37 // is ignored. | 
| 114 IN_PROC_BROWSER_TEST_F(AdViewNoSrcTest, InvalidAdNetworkIsIgnored) { | 38 IN_PROC_BROWSER_TEST_F(AdViewTest, InvalidAdNetworkIsIgnored) { | 
| 115   ASSERT_TRUE(StartEmbeddedTestServer()); | 39   ASSERT_TRUE(StartEmbeddedTestServer()); | 
| 116 | 40 | 
| 117   ASSERT_TRUE(RunPlatformAppTest( | 41   ASSERT_TRUE(RunPlatformAppTest( | 
| 118       "platform_apps/ad_view/invalid_ad_network")) << message_; | 42       "platform_apps/ad_view/invalid_ad_network")) << message_; | 
| 119 } | 43 } | 
| 120 | 44 | 
| 121 // This test checks the "src" attribute is ignored when the |  | 
| 122 // "kEnableAdviewSrcAttribute" is missing. |  | 
| 123 IN_PROC_BROWSER_TEST_F(AdViewNoSrcTest, EnableAdviewSrcAttributeFlagRequired) { |  | 
| 124   ASSERT_TRUE(StartEmbeddedTestServer()); |  | 
| 125 |  | 
| 126   ASSERT_TRUE(RunPlatformAppTest( |  | 
| 127       "platform_apps/ad_view/src_flag_required")) << message_; |  | 
| 128 } |  | 
| 129 |  | 
| 130 // This test checks 1) an <adview> works end-to-end (i.e. page is loaded) when |  | 
| 131 // using a whitelisted ad-network, and 2) the "src" attribute is never exposed |  | 
| 132 // to the application. |  | 
| 133 IN_PROC_BROWSER_TEST_F(AdViewNoSrcTest, SrcNotExposed) { |  | 
| 134   base::FilePath file_path = test_data_dir_ |  | 
| 135     .AppendASCII("platform_apps") |  | 
| 136     .AppendASCII("ad_view/src_not_exposed") |  | 
| 137     .AppendASCII("ad_network_fake_website.html"); |  | 
| 138 |  | 
| 139   // Note: The following URL is identical to the whitelisted url |  | 
| 140   //       for "admob" (see ad_view.js). |  | 
| 141   GURL url = GURL("https://admob-sdk.doubleclick.net/chromeapps"); |  | 
| 142   std::string scheme = url.scheme(); |  | 
| 143   std::string hostname = url.host(); |  | 
| 144 |  | 
| 145   content::URLRequestPrepackagedInterceptor interceptor(scheme, hostname); |  | 
| 146   interceptor.SetResponse(url, file_path); |  | 
| 147 |  | 
| 148   ASSERT_TRUE(RunPlatformAppTest( |  | 
| 149       "platform_apps/ad_view/src_not_exposed")) << message_; |  | 
| 150   ASSERT_EQ(1, interceptor.GetHitCount()); |  | 
| 151 } |  | 
| 152 |  | 
| 153 class AdViewNotEnabledTest : public extensions::PlatformAppBrowserTest { | 45 class AdViewNotEnabledTest : public extensions::PlatformAppBrowserTest { | 
| 154  protected: | 46  protected: | 
| 155   virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 47   virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | 
| 156     extensions::PlatformAppBrowserTest::SetUpCommandLine(command_line); | 48     extensions::PlatformAppBrowserTest::SetUpCommandLine(command_line); | 
| 157     //Note: The "kEnableAdview" flag is not here! | 49     //Note: The "kEnableAdview" flag is not here! | 
| 158   } | 50   } | 
| 159 }; | 51 }; | 
| 160 | 52 | 
| 161 // This test checks an <adview> element has no behavior when the "kEnableAdview" | 53 // This test checks an <adview> element has no behavior when the "kEnableAdview" | 
| 162 // flag is missing. | 54 // flag is missing. | 
| 163 IN_PROC_BROWSER_TEST_F(AdViewNotEnabledTest, EnableAdviewFlagRequired) { | 55 IN_PROC_BROWSER_TEST_F(AdViewNotEnabledTest, EnableAdviewFlagRequired) { | 
| 164   ASSERT_TRUE(StartEmbeddedTestServer()); | 56   ASSERT_TRUE(StartEmbeddedTestServer()); | 
| 165 | 57 | 
| 166   ASSERT_TRUE(RunPlatformAppTest( | 58   ASSERT_TRUE(RunPlatformAppTest( | 
| 167       "platform_apps/ad_view/flag_required")) << message_; | 59       "platform_apps/ad_view/flag_required")) << message_; | 
| 168 } | 60 } | 
| OLD | NEW | 
|---|