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

Side by Side Diff: chrome/browser/extensions/ad_view_browsertest.cc

Issue 12967016: Improve <adview> implementation and add tests. (Closed) Base URL: https://git.chromium.org/chromium/src.git@master
Patch Set: Code review feedback. Created 7 years, 8 months 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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/extensions/extension_test_message_listener.h" 5 #include "chrome/browser/extensions/extension_test_message_listener.h"
6 #include "chrome/browser/extensions/platform_app_browsertest_util.h" 6 #include "chrome/browser/extensions/platform_app_browsertest_util.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"
9 #include "net/url_request/url_fetcher.h"
10
8 11
9 class AdViewTest : public extensions::PlatformAppBrowserTest { 12 class AdViewTest : public extensions::PlatformAppBrowserTest {
10 protected: 13 protected:
11 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { 14 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
12 extensions::PlatformAppBrowserTest::SetUpCommandLine(command_line); 15 extensions::PlatformAppBrowserTest::SetUpCommandLine(command_line);
13 command_line->AppendSwitch(switches::kEnableAdview); 16 command_line->AppendSwitch(switches::kEnableAdview);
14 command_line->AppendSwitch(switches::kEnableAdviewSrcAttribute); 17 command_line->AppendSwitch(switches::kEnableAdviewSrcAttribute);
15 } 18 }
16 }; 19 };
17 20
18 IN_PROC_BROWSER_TEST_F(AdViewTest, LoadEventIsCalled) { 21 IN_PROC_BROWSER_TEST_F(AdViewTest, LoadCommitEventIsCalled) {
benwells 2013/04/02 00:49:45 Where did all the comments go?
rpaquay 2013/04/02 16:44:47 I moved them in their respective "chrometest.js" f
benwells 2013/04/03 02:40:03 This is the first point of investigation for anyon
rpaquay 2013/04/03 18:30:05 Done.
19 ASSERT_TRUE(StartTestServer()); 22 ASSERT_TRUE(StartTestServer());
20 23
21 ExtensionTestMessageListener listener("guest-loaded", false); 24 ASSERT_TRUE(RunPlatformAppTest(
22 LoadAndLaunchPlatformApp("ad_view/load_event"); 25 "platform_apps/ad_view/loadcommit_event")) << message_;
23 ASSERT_TRUE(listener.WaitUntilSatisfied());
24 } 26 }
25 27
26 IN_PROC_BROWSER_TEST_F(AdViewTest, AdNetworkIsLoaded) { 28 IN_PROC_BROWSER_TEST_F(AdViewTest, LoadAbortEventIsCalled) {
27 ASSERT_TRUE(StartTestServer()); 29 ASSERT_TRUE(StartTestServer());
28 30
29 ExtensionTestMessageListener listener("ad-network-loaded", false); 31 ASSERT_TRUE(RunPlatformAppTest(
30 LoadAndLaunchPlatformApp("ad_view/ad_network_loaded"); 32 "platform_apps/ad_view/loadabort_event")) << message_;
31 ASSERT_TRUE(listener.WaitUntilSatisfied());
32 } 33 }
33 34
34 // This test currently fails on trybots because it requires new binary file 35 IN_PROC_BROWSER_TEST_F(AdViewTest, CommitMessageFromAdNetwork) {
35 // (image315.png). The test will be enabled once the binary files are committed.
36 IN_PROC_BROWSER_TEST_F(AdViewTest, DISABLED_DisplayFirstAd) {
37 ASSERT_TRUE(StartTestServer()); 36 ASSERT_TRUE(StartTestServer());
38 37
39 ExtensionTestMessageListener listener("ad-displayed", false); 38 ASSERT_TRUE(RunPlatformAppTest(
40 LoadAndLaunchPlatformApp("ad_view/display_first_ad"); 39 "platform_apps/ad_view/onloadcommit_ack")) << message_;
41 ASSERT_TRUE(listener.WaitUntilSatisfied());
42 } 40 }
41
42 IN_PROC_BROWSER_TEST_F(AdViewTest, DisplayFirstAd) {
43 ASSERT_TRUE(StartTestServer());
44
45 ASSERT_TRUE(RunPlatformAppTest(
46 "platform_apps/ad_view/display_first_ad")) << message_;
47 }
48
49 IN_PROC_BROWSER_TEST_F(AdViewTest, PropertiesAreInSyncWithAttributes) {
50 ASSERT_TRUE(StartTestServer());
51
52 ASSERT_TRUE(RunPlatformAppTest(
53 "platform_apps/ad_view/properties_exposed")) << message_;
54 }
55
56 IN_PROC_BROWSER_TEST_F(AdViewTest, AdViewPermissionIsRequired) {
57 ASSERT_TRUE(StartTestServer());
58
59 ASSERT_TRUE(RunPlatformAppTest(
60 "platform_apps/ad_view/permission_required")) << message_;
61 }
62
63 IN_PROC_BROWSER_TEST_F(AdViewTest, ChangeAdNetworkValue) {
64 ASSERT_TRUE(StartTestServer());
65
66 ASSERT_TRUE(RunPlatformAppTest(
67 "platform_apps/ad_view/change_ad_network")) << message_;
68 }
69
70
71 class AdViewNoSrcTest : public extensions::PlatformAppBrowserTest {
72 protected:
73 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
74 extensions::PlatformAppBrowserTest::SetUpCommandLine(command_line);
75 command_line->AppendSwitch(switches::kEnableAdview);
76 //Note: The "kEnableAdviewSrcAttribute" flag is not here!
77 }
78 };
79
80 IN_PROC_BROWSER_TEST_F(AdViewNoSrcTest, InvalidAdNetworkIsIgnored) {
81 ASSERT_TRUE(StartTestServer());
82
83 ASSERT_TRUE(RunPlatformAppTest(
84 "platform_apps/ad_view/invalid_ad_network")) << message_;
85 }
86
87 IN_PROC_BROWSER_TEST_F(AdViewNoSrcTest, EnableAdviewSrcAttributeFlagRequired) {
88 ASSERT_TRUE(StartTestServer());
89
90 ASSERT_TRUE(RunPlatformAppTest(
91 "platform_apps/ad_view/src_flag_required")) << message_;
92 }
93
94 // This test checks an <adview> works end-to-end (i.e. page is loaded) when
95 // using a whitelisted ad-network.
96 IN_PROC_BROWSER_TEST_F(AdViewNoSrcTest, SrcNotExposed) {
97 base::FilePath file_path = test_data_dir_
98 .AppendASCII("platform_apps")
99 .AppendASCII("ad_view/src_not_exposed")
100 .AppendASCII("ad_network_fake_website.html");
101
102 // Note: The following URL is identical to the whitelisted url
103 // for "admob" (see ad_view.js).
104 GURL url = GURL("https://admob-sdk.doubleclick.net/chromeapps");
105 std::string scheme = url.scheme();
106 std::string hostname = url.host();
107
108 content::URLRequestPrepackagedInterceptor interceptor(scheme, hostname);
109 interceptor.SetResponse(url, file_path);
110
111 ASSERT_TRUE(RunPlatformAppTest(
112 "platform_apps/ad_view/src_not_exposed")) << message_;
113 ASSERT_EQ(1, interceptor.GetHitCount());
114 }
115
116
117 class AdViewNotEnabledTest : public extensions::PlatformAppBrowserTest {
118 protected:
119 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
120 extensions::PlatformAppBrowserTest::SetUpCommandLine(command_line);
121 //Note: The "kEnableAdview" flag is not here!
122 }
123 };
124
125 IN_PROC_BROWSER_TEST_F(AdViewNotEnabledTest, EnableAdviewFlagRequired) {
126 ASSERT_TRUE(StartTestServer());
127
128 ASSERT_TRUE(RunPlatformAppTest(
129 "platform_apps/ad_view/flag_required")) << message_;
130 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698