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

Side by Side Diff: ios/chrome/app/chrome_app_startup_parameters_unittest.mm

Issue 2935713002: [ObjC ARC] Converts ios/chrome/app:unit_tests to ARC. (Closed)
Patch Set: Removed spurious include. Created 3 years, 6 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
« no previous file with comments | « ios/chrome/app/BUILD.gn ('k') | ios/chrome/app/deferred_initialization_runner_unittest.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #import "ios/chrome/app/chrome_app_startup_parameters.h" 5 #import "ios/chrome/app/chrome_app_startup_parameters.h"
6 6
7 #import <Foundation/Foundation.h> 7 #import <Foundation/Foundation.h>
8 8
9 #include "base/mac/scoped_nsobject.h"
10 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
11 #include "ios/chrome/browser/app_startup_parameters.h" 10 #include "ios/chrome/browser/app_startup_parameters.h"
12 #include "ios/chrome/browser/chrome_url_constants.h" 11 #include "ios/chrome/browser/chrome_url_constants.h"
13 #import "ios/chrome/browser/xcallback_parameters.h" 12 #import "ios/chrome/browser/xcallback_parameters.h"
14 #include "ios/chrome/common/app_group/app_group_constants.h" 13 #include "ios/chrome/common/app_group/app_group_constants.h"
15 #include "testing/gtest_mac.h" 14 #include "testing/gtest_mac.h"
16 #include "testing/platform_test.h" 15 #include "testing/platform_test.h"
17 #include "url/gurl.h" 16 #include "url/gurl.h"
18 17
18 #if !defined(__has_feature) || !__has_feature(objc_arc)
19 #error "This file requires ARC support."
20 #endif
21
19 namespace { 22 namespace {
20 void CheckLaunchSourceForURL(first_run::ExternalLaunch expectedSource, 23 void CheckLaunchSourceForURL(first_run::ExternalLaunch expectedSource,
21 NSString* urlString) { 24 NSString* urlString) {
22 NSURL* url = [NSURL URLWithString:urlString]; 25 NSURL* url = [NSURL URLWithString:urlString];
23 base::scoped_nsobject<ChromeAppStartupParameters> params( 26 ChromeAppStartupParameters* params = [ChromeAppStartupParameters
24 [ChromeAppStartupParameters 27 newChromeAppStartupParametersWithURL:url
25 newChromeAppStartupParametersWithURL:url 28 fromSourceApplication:@"com.apple.mobilesafari"];
26 fromSourceApplication:@"com.apple.mobilesafari"]);
27 EXPECT_EQ(expectedSource, [params launchSource]); 29 EXPECT_EQ(expectedSource, [params launchSource]);
28 } 30 }
29 31
30 typedef PlatformTest AppStartupParametersTest; 32 typedef PlatformTest AppStartupParametersTest;
31 TEST_F(PlatformTest, ParseURLWithEmptyURL) { 33 TEST_F(PlatformTest, ParseURLWithEmptyURL) {
32 NSURL* url = [NSURL URLWithString:@""]; 34 NSURL* url = [NSURL URLWithString:@""];
33 base::scoped_nsobject<ChromeAppStartupParameters> params( 35 ChromeAppStartupParameters* params =
34 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url 36 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
35 fromSourceApplication:nil]); 37 fromSourceApplication:nil];
36 38
37 EXPECT_FALSE(params); 39 EXPECT_FALSE(params);
38 } 40 }
39 41
40 TEST_F(AppStartupParametersTest, ParseURLWithOneProtocol) { 42 TEST_F(AppStartupParametersTest, ParseURLWithOneProtocol) {
41 NSURL* url = [NSURL URLWithString:@"protocol://www.google.com"]; 43 NSURL* url = [NSURL URLWithString:@"protocol://www.google.com"];
42 base::scoped_nsobject<ChromeAppStartupParameters> params( 44 ChromeAppStartupParameters* params =
43 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url 45 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
44 fromSourceApplication:nil]); 46 fromSourceApplication:nil];
45 // Here "protocol" opens the app and no protocol is given for the parsed URL, 47 // Here "protocol" opens the app and no protocol is given for the parsed URL,
46 // which defaults to be "http". 48 // which defaults to be "http".
47 EXPECT_EQ("http://www.google.com/", [params externalURL].spec()); 49 EXPECT_EQ("http://www.google.com/", [params externalURL].spec());
48 } 50 }
49 51
50 TEST_F(AppStartupParametersTest, ParseURLWithEmptyParsedURL) { 52 TEST_F(AppStartupParametersTest, ParseURLWithEmptyParsedURL) {
51 // Test chromium:// 53 // Test chromium://
52 NSURL* url = [NSURL URLWithString:@"chromium://"]; 54 NSURL* url = [NSURL URLWithString:@"chromium://"];
53 base::scoped_nsobject<ChromeAppStartupParameters> params( 55 ChromeAppStartupParameters* params =
54 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url 56 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
55 fromSourceApplication:nil]); 57 fromSourceApplication:nil];
56 58
57 EXPECT_FALSE(params); 59 EXPECT_FALSE(params);
58 } 60 }
59 61
60 TEST_F(AppStartupParametersTest, ParseURLWithParsedURLDefaultToHttp) { 62 TEST_F(AppStartupParametersTest, ParseURLWithParsedURLDefaultToHttp) {
61 NSURL* url = [NSURL URLWithString:@"chromium://www.google.com"]; 63 NSURL* url = [NSURL URLWithString:@"chromium://www.google.com"];
62 base::scoped_nsobject<ChromeAppStartupParameters> params( 64 ChromeAppStartupParameters* params =
63 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url 65 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
64 fromSourceApplication:nil]); 66 fromSourceApplication:nil];
65 67
66 EXPECT_EQ("http://www.google.com/", [params externalURL].spec()); 68 EXPECT_EQ("http://www.google.com/", [params externalURL].spec());
67 } 69 }
68 70
69 TEST_F(AppStartupParametersTest, ParseURLWithInvalidParsedURL) { 71 TEST_F(AppStartupParametersTest, ParseURLWithInvalidParsedURL) {
70 NSURL* url = [NSURL URLWithString:@"http:google.com:foo"]; 72 NSURL* url = [NSURL URLWithString:@"http:google.com:foo"];
71 base::scoped_nsobject<ChromeAppStartupParameters> params( 73 ChromeAppStartupParameters* params =
72 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url 74 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
73 fromSourceApplication:nil]); 75 fromSourceApplication:nil];
74 76
75 EXPECT_FALSE(params); 77 EXPECT_FALSE(params);
76 } 78 }
77 79
78 TEST_F(AppStartupParametersTest, ParseURLWithHttpsParsedURL) { 80 TEST_F(AppStartupParametersTest, ParseURLWithHttpsParsedURL) {
79 NSURL* url = [NSURL URLWithString:@"chromiums://www.google.com"]; 81 NSURL* url = [NSURL URLWithString:@"chromiums://www.google.com"];
80 base::scoped_nsobject<ChromeAppStartupParameters> params( 82 ChromeAppStartupParameters* params =
81 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url 83 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
82 fromSourceApplication:nil]); 84 fromSourceApplication:nil];
83 85
84 EXPECT_EQ("https://www.google.com/", [params externalURL].spec()); 86 EXPECT_EQ("https://www.google.com/", [params externalURL].spec());
85 } 87 }
86 88
87 TEST_F(AppStartupParametersTest, ParseURLWithXCallbackURL) { 89 TEST_F(AppStartupParametersTest, ParseURLWithXCallbackURL) {
88 NSURL* url = 90 NSURL* url =
89 [NSURL URLWithString:@"chromium-x-callback://x-callback-url/open?" 91 [NSURL URLWithString:@"chromium-x-callback://x-callback-url/open?"
90 "url=https://www.google.com"]; 92 "url=https://www.google.com"];
91 base::scoped_nsobject<ChromeAppStartupParameters> params( 93 ChromeAppStartupParameters* params =
92 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url 94 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
93 fromSourceApplication:nil]); 95 fromSourceApplication:nil];
94 EXPECT_EQ("https://www.google.com/", [params externalURL].spec()); 96 EXPECT_EQ("https://www.google.com/", [params externalURL].spec());
95 } 97 }
96 98
97 TEST_F(AppStartupParametersTest, ParseURLWithXCallbackURLAndExtraParams) { 99 TEST_F(AppStartupParametersTest, ParseURLWithXCallbackURLAndExtraParams) {
98 NSURL* url = 100 NSURL* url =
99 [NSURL URLWithString:@"chromium-x-callback://x-callback-url/open?" 101 [NSURL URLWithString:@"chromium-x-callback://x-callback-url/open?"
100 "url=https://www.google.com&" 102 "url=https://www.google.com&"
101 "x-success=http://success"]; 103 "x-success=http://success"];
102 base::scoped_nsobject<ChromeAppStartupParameters> params( 104 ChromeAppStartupParameters* params =
103 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url 105 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
104 fromSourceApplication:nil]); 106 fromSourceApplication:nil];
105 EXPECT_EQ("https://www.google.com/", [params externalURL].spec()); 107 EXPECT_EQ("https://www.google.com/", [params externalURL].spec());
106 } 108 }
107 109
108 TEST_F(AppStartupParametersTest, ParseURLWithMalformedXCallbackURL) { 110 TEST_F(AppStartupParametersTest, ParseURLWithMalformedXCallbackURL) {
109 NSURL* url = [NSURL 111 NSURL* url = [NSURL
110 URLWithString:@"chromium-x-callback://x-callback-url/open?url=foobar&" 112 URLWithString:@"chromium-x-callback://x-callback-url/open?url=foobar&"
111 "x-source=myapp&x-success=http://success"]; 113 "x-source=myapp&x-success=http://success"];
112 base::scoped_nsobject<ChromeAppStartupParameters> params( 114 ChromeAppStartupParameters* params = [ChromeAppStartupParameters
113 [ChromeAppStartupParameters 115 newChromeAppStartupParametersWithURL:url
114 newChromeAppStartupParametersWithURL:url 116 fromSourceApplication:@"com.myapp"];
115 fromSourceApplication:@"com.myapp"]);
116 EXPECT_FALSE(params); 117 EXPECT_FALSE(params);
117 } 118 }
118 119
119 TEST_F(AppStartupParametersTest, ParseURLWithJavascriptURLInXCallbackURL) { 120 TEST_F(AppStartupParametersTest, ParseURLWithJavascriptURLInXCallbackURL) {
120 NSURL* url = [NSURL 121 NSURL* url = [NSURL
121 URLWithString: 122 URLWithString:
122 @"chromium-x-callback://x-callback-url/open?url=" 123 @"chromium-x-callback://x-callback-url/open?url="
123 "javascript:window.open()&x-source=myapp&x-success=http://success"]; 124 "javascript:window.open()&x-source=myapp&x-success=http://success"];
124 base::scoped_nsobject<ChromeAppStartupParameters> params( 125 ChromeAppStartupParameters* params = [ChromeAppStartupParameters
125 [ChromeAppStartupParameters 126 newChromeAppStartupParametersWithURL:url
126 newChromeAppStartupParametersWithURL:url 127 fromSourceApplication:@"com.myapp"];
127 fromSourceApplication:@"com.myapp"]);
128 EXPECT_FALSE(params); 128 EXPECT_FALSE(params);
129 } 129 }
130 130
131 TEST_F(AppStartupParametersTest, ParseURLWithChromeURLInXCallbackURL) { 131 TEST_F(AppStartupParametersTest, ParseURLWithChromeURLInXCallbackURL) {
132 NSURL* url = 132 NSURL* url =
133 [NSURL URLWithString:@"chromium-x-callback://x-callback-url/open?url=" 133 [NSURL URLWithString:@"chromium-x-callback://x-callback-url/open?url="
134 "chrome:passwords"]; 134 "chrome:passwords"];
135 base::scoped_nsobject<ChromeAppStartupParameters> params( 135 ChromeAppStartupParameters* params = [ChromeAppStartupParameters
136 [ChromeAppStartupParameters 136 newChromeAppStartupParametersWithURL:url
137 newChromeAppStartupParametersWithURL:url 137 fromSourceApplication:@"com.myapp"];
138 fromSourceApplication:@"com.myapp"]);
139 EXPECT_FALSE(params); 138 EXPECT_FALSE(params);
140 } 139 }
141 140
142 TEST_F(AppStartupParametersTest, ParseURLWithFileParsedURL) { 141 TEST_F(AppStartupParametersTest, ParseURLWithFileParsedURL) {
143 NSURL* url = [NSURL URLWithString:@"file://localhost/path/to/file.pdf"]; 142 NSURL* url = [NSURL URLWithString:@"file://localhost/path/to/file.pdf"];
144 base::scoped_nsobject<ChromeAppStartupParameters> params( 143 ChromeAppStartupParameters* params =
145 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url 144 [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
146 fromSourceApplication:nil]); 145 fromSourceApplication:nil];
147 146
148 std::string expectedUrlString = base::StringPrintf( 147 std::string expectedUrlString = base::StringPrintf(
149 "%s://%s/file.pdf", kChromeUIScheme, kChromeUIExternalFileHost); 148 "%s://%s/file.pdf", kChromeUIScheme, kChromeUIExternalFileHost);
150 149
151 EXPECT_EQ(expectedUrlString, [params externalURL].spec()); 150 EXPECT_EQ(expectedUrlString, [params externalURL].spec());
152 } 151 }
153 152
154 TEST_F(AppStartupParametersTest, ParseURLWithAppGroupVoiceSearch) { 153 TEST_F(AppStartupParametersTest, ParseURLWithAppGroupVoiceSearch) {
155 base::scoped_nsobject<ChromeAppStartupParameters> params( 154 ChromeAppStartupParameters* params = [ChromeAppStartupParameters
156 [ChromeAppStartupParameters 155 newAppStartupParametersForCommand:@"voicesearch"
157 newAppStartupParametersForCommand:@"voicesearch" 156 withParameter:nil
158 withParameter:nil 157 withURL:nil
159 withURL:nil 158 fromSourceApplication:nil
160 fromSourceApplication:nil 159 fromSecureSourceApplication:nil];
161 fromSecureSourceApplication:nil]);
162 160
163 std::string expectedUrlString = 161 std::string expectedUrlString =
164 base::StringPrintf("%s://%s/", kChromeUIScheme, kChromeUINewTabHost); 162 base::StringPrintf("%s://%s/", kChromeUIScheme, kChromeUINewTabHost);
165 163
166 EXPECT_EQ(expectedUrlString, [params externalURL].spec()); 164 EXPECT_EQ(expectedUrlString, [params externalURL].spec());
167 EXPECT_TRUE([params launchVoiceSearch]); 165 EXPECT_TRUE([params launchVoiceSearch]);
168 } 166 }
169 167
170 TEST_F(AppStartupParametersTest, ParseURLWithAppGroupNewTab) { 168 TEST_F(AppStartupParametersTest, ParseURLWithAppGroupNewTab) {
171 base::scoped_nsobject<ChromeAppStartupParameters> params( 169 ChromeAppStartupParameters* params =
172 [ChromeAppStartupParameters newAppStartupParametersForCommand:@"newtab" 170 [ChromeAppStartupParameters newAppStartupParametersForCommand:@"newtab"
173 withParameter:nil 171 withParameter:nil
174 withURL:nil 172 withURL:nil
175 fromSourceApplication:nil 173 fromSourceApplication:nil
176 fromSecureSourceApplication:nil]); 174 fromSecureSourceApplication:nil];
177 std::string expectedUrlString = 175 std::string expectedUrlString =
178 base::StringPrintf("%s://%s/", kChromeUIScheme, kChromeUINewTabHost); 176 base::StringPrintf("%s://%s/", kChromeUIScheme, kChromeUINewTabHost);
179 177
180 EXPECT_EQ(expectedUrlString, [params externalURL].spec()); 178 EXPECT_EQ(expectedUrlString, [params externalURL].spec());
181 EXPECT_FALSE([params launchVoiceSearch]); 179 EXPECT_FALSE([params launchVoiceSearch]);
182 } 180 }
183 181
184 TEST_F(AppStartupParametersTest, ParseURLWithAppGroupOpenURL) { 182 TEST_F(AppStartupParametersTest, ParseURLWithAppGroupOpenURL) {
185 base::scoped_nsobject<ChromeAppStartupParameters> params( 183 ChromeAppStartupParameters* params = [ChromeAppStartupParameters
186 [ChromeAppStartupParameters 184 newAppStartupParametersForCommand:@"openurl"
187 newAppStartupParametersForCommand:@"openurl" 185 withParameter:@"http://foo/bar"
188 withParameter:@"http://foo/bar" 186 withURL:nil
189 withURL:nil 187 fromSourceApplication:nil
190 fromSourceApplication:nil 188 fromSecureSourceApplication:nil];
191 fromSecureSourceApplication:nil]);
192 189
193 EXPECT_EQ("http://foo/bar", [params externalURL].spec()); 190 EXPECT_EQ("http://foo/bar", [params externalURL].spec());
194 } 191 }
195 192
196 TEST_F(AppStartupParametersTest, ParseURLWithAppGroupGarbage) { 193 TEST_F(AppStartupParametersTest, ParseURLWithAppGroupGarbage) {
197 base::scoped_nsobject<ChromeAppStartupParameters> params( 194 ChromeAppStartupParameters* params =
198 [ChromeAppStartupParameters newAppStartupParametersForCommand:@"garbage" 195 [ChromeAppStartupParameters newAppStartupParametersForCommand:@"garbage"
199 withParameter:nil 196 withParameter:nil
200 withURL:nil 197 withURL:nil
201 fromSourceApplication:nil 198 fromSourceApplication:nil
202 fromSecureSourceApplication:nil]); 199 fromSecureSourceApplication:nil];
203 EXPECT_FALSE(params); 200 EXPECT_FALSE(params);
204 } 201 }
205 202
206 TEST_F(AppStartupParametersTest, FirstRunExternalLaunchSource) { 203 TEST_F(AppStartupParametersTest, FirstRunExternalLaunchSource) {
207 // Key at the beginning of query string. 204 // Key at the beginning of query string.
208 CheckLaunchSourceForURL( 205 CheckLaunchSourceForURL(
209 first_run::LAUNCH_BY_SMARTAPPBANNER, 206 first_run::LAUNCH_BY_SMARTAPPBANNER,
210 @"http://www.google.com/search?safarisab=1&query=pony"); 207 @"http://www.google.com/search?safarisab=1&query=pony");
211 // Key at the end of query string. 208 // Key at the end of query string.
212 CheckLaunchSourceForURL( 209 CheckLaunchSourceForURL(
(...skipping 22 matching lines...) Expand all
235 // Key is a substring of some other string. 232 // Key is a substring of some other string.
236 CheckLaunchSourceForURL( 233 CheckLaunchSourceForURL(
237 first_run::LAUNCH_BY_MOBILESAFARI, 234 first_run::LAUNCH_BY_MOBILESAFARI,
238 @"http://www.google.com/search?query=pony&safarisabcdefg=1"); 235 @"http://www.google.com/search?query=pony&safarisabcdefg=1");
239 CheckLaunchSourceForURL( 236 CheckLaunchSourceForURL(
240 first_run::LAUNCH_BY_MOBILESAFARI, 237 first_run::LAUNCH_BY_MOBILESAFARI,
241 @"http://www.google.com/search?query=pony&notsafarisab=1&abc=def"); 238 @"http://www.google.com/search?query=pony&notsafarisab=1&abc=def");
242 } 239 }
243 240
244 } // namespace 241 } // namespace
OLDNEW
« no previous file with comments | « ios/chrome/app/BUILD.gn ('k') | ios/chrome/app/deferred_initialization_runner_unittest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698