| Index: ios/chrome/app/chrome_app_startup_parameters_unittest.mm
|
| diff --git a/ios/chrome/app/chrome_app_startup_parameters_unittest.mm b/ios/chrome/app/chrome_app_startup_parameters_unittest.mm
|
| index 3cd734d550e2c82ff00bb6565a196ab0e1aa3f02..7ce2501db5b54e3a8423812b0ff0a7d31d38f777 100644
|
| --- a/ios/chrome/app/chrome_app_startup_parameters_unittest.mm
|
| +++ b/ios/chrome/app/chrome_app_startup_parameters_unittest.mm
|
| @@ -6,7 +6,6 @@
|
|
|
| #import <Foundation/Foundation.h>
|
|
|
| -#include "base/mac/scoped_nsobject.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "ios/chrome/browser/app_startup_parameters.h"
|
| #include "ios/chrome/browser/chrome_url_constants.h"
|
| @@ -16,32 +15,35 @@
|
| #include "testing/platform_test.h"
|
| #include "url/gurl.h"
|
|
|
| +#if !defined(__has_feature) || !__has_feature(objc_arc)
|
| +#error "This file requires ARC support."
|
| +#endif
|
| +
|
| namespace {
|
| void CheckLaunchSourceForURL(first_run::ExternalLaunch expectedSource,
|
| NSString* urlString) {
|
| NSURL* url = [NSURL URLWithString:urlString];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| - [ChromeAppStartupParameters
|
| - newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:@"com.apple.mobilesafari"]);
|
| + ChromeAppStartupParameters* params = [ChromeAppStartupParameters
|
| + newChromeAppStartupParametersWithURL:url
|
| + fromSourceApplication:@"com.apple.mobilesafari"];
|
| EXPECT_EQ(expectedSource, [params launchSource]);
|
| }
|
|
|
| typedef PlatformTest AppStartupParametersTest;
|
| TEST_F(PlatformTest, ParseURLWithEmptyURL) {
|
| NSURL* url = [NSURL URLWithString:@""];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| + ChromeAppStartupParameters* params =
|
| [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:nil]);
|
| + fromSourceApplication:nil];
|
|
|
| EXPECT_FALSE(params);
|
| }
|
|
|
| TEST_F(AppStartupParametersTest, ParseURLWithOneProtocol) {
|
| NSURL* url = [NSURL URLWithString:@"protocol://www.google.com"];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| + ChromeAppStartupParameters* params =
|
| [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:nil]);
|
| + fromSourceApplication:nil];
|
| // Here "protocol" opens the app and no protocol is given for the parsed URL,
|
| // which defaults to be "http".
|
| EXPECT_EQ("http://www.google.com/", [params externalURL].spec());
|
| @@ -50,36 +52,36 @@ TEST_F(AppStartupParametersTest, ParseURLWithOneProtocol) {
|
| TEST_F(AppStartupParametersTest, ParseURLWithEmptyParsedURL) {
|
| // Test chromium://
|
| NSURL* url = [NSURL URLWithString:@"chromium://"];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| + ChromeAppStartupParameters* params =
|
| [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:nil]);
|
| + fromSourceApplication:nil];
|
|
|
| EXPECT_FALSE(params);
|
| }
|
|
|
| TEST_F(AppStartupParametersTest, ParseURLWithParsedURLDefaultToHttp) {
|
| NSURL* url = [NSURL URLWithString:@"chromium://www.google.com"];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| + ChromeAppStartupParameters* params =
|
| [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:nil]);
|
| + fromSourceApplication:nil];
|
|
|
| EXPECT_EQ("http://www.google.com/", [params externalURL].spec());
|
| }
|
|
|
| TEST_F(AppStartupParametersTest, ParseURLWithInvalidParsedURL) {
|
| NSURL* url = [NSURL URLWithString:@"http:google.com:foo"];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| + ChromeAppStartupParameters* params =
|
| [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:nil]);
|
| + fromSourceApplication:nil];
|
|
|
| EXPECT_FALSE(params);
|
| }
|
|
|
| TEST_F(AppStartupParametersTest, ParseURLWithHttpsParsedURL) {
|
| NSURL* url = [NSURL URLWithString:@"chromiums://www.google.com"];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| + ChromeAppStartupParameters* params =
|
| [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:nil]);
|
| + fromSourceApplication:nil];
|
|
|
| EXPECT_EQ("https://www.google.com/", [params externalURL].spec());
|
| }
|
| @@ -88,9 +90,9 @@ TEST_F(AppStartupParametersTest, ParseURLWithXCallbackURL) {
|
| NSURL* url =
|
| [NSURL URLWithString:@"chromium-x-callback://x-callback-url/open?"
|
| "url=https://www.google.com"];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| + ChromeAppStartupParameters* params =
|
| [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:nil]);
|
| + fromSourceApplication:nil];
|
| EXPECT_EQ("https://www.google.com/", [params externalURL].spec());
|
| }
|
|
|
| @@ -99,9 +101,9 @@ TEST_F(AppStartupParametersTest, ParseURLWithXCallbackURLAndExtraParams) {
|
| [NSURL URLWithString:@"chromium-x-callback://x-callback-url/open?"
|
| "url=https://www.google.com&"
|
| "x-success=http://success"];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| + ChromeAppStartupParameters* params =
|
| [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:nil]);
|
| + fromSourceApplication:nil];
|
| EXPECT_EQ("https://www.google.com/", [params externalURL].spec());
|
| }
|
|
|
| @@ -109,10 +111,9 @@ TEST_F(AppStartupParametersTest, ParseURLWithMalformedXCallbackURL) {
|
| NSURL* url = [NSURL
|
| URLWithString:@"chromium-x-callback://x-callback-url/open?url=foobar&"
|
| "x-source=myapp&x-success=http://success"];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| - [ChromeAppStartupParameters
|
| - newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:@"com.myapp"]);
|
| + ChromeAppStartupParameters* params = [ChromeAppStartupParameters
|
| + newChromeAppStartupParametersWithURL:url
|
| + fromSourceApplication:@"com.myapp"];
|
| EXPECT_FALSE(params);
|
| }
|
|
|
| @@ -121,10 +122,9 @@ TEST_F(AppStartupParametersTest, ParseURLWithJavascriptURLInXCallbackURL) {
|
| URLWithString:
|
| @"chromium-x-callback://x-callback-url/open?url="
|
| "javascript:window.open()&x-source=myapp&x-success=http://success"];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| - [ChromeAppStartupParameters
|
| - newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:@"com.myapp"]);
|
| + ChromeAppStartupParameters* params = [ChromeAppStartupParameters
|
| + newChromeAppStartupParametersWithURL:url
|
| + fromSourceApplication:@"com.myapp"];
|
| EXPECT_FALSE(params);
|
| }
|
|
|
| @@ -132,18 +132,17 @@ TEST_F(AppStartupParametersTest, ParseURLWithChromeURLInXCallbackURL) {
|
| NSURL* url =
|
| [NSURL URLWithString:@"chromium-x-callback://x-callback-url/open?url="
|
| "chrome:passwords"];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| - [ChromeAppStartupParameters
|
| - newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:@"com.myapp"]);
|
| + ChromeAppStartupParameters* params = [ChromeAppStartupParameters
|
| + newChromeAppStartupParametersWithURL:url
|
| + fromSourceApplication:@"com.myapp"];
|
| EXPECT_FALSE(params);
|
| }
|
|
|
| TEST_F(AppStartupParametersTest, ParseURLWithFileParsedURL) {
|
| NSURL* url = [NSURL URLWithString:@"file://localhost/path/to/file.pdf"];
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| + ChromeAppStartupParameters* params =
|
| [ChromeAppStartupParameters newChromeAppStartupParametersWithURL:url
|
| - fromSourceApplication:nil]);
|
| + fromSourceApplication:nil];
|
|
|
| std::string expectedUrlString = base::StringPrintf(
|
| "%s://%s/file.pdf", kChromeUIScheme, kChromeUIExternalFileHost);
|
| @@ -152,13 +151,12 @@ TEST_F(AppStartupParametersTest, ParseURLWithFileParsedURL) {
|
| }
|
|
|
| TEST_F(AppStartupParametersTest, ParseURLWithAppGroupVoiceSearch) {
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| - [ChromeAppStartupParameters
|
| - newAppStartupParametersForCommand:@"voicesearch"
|
| - withParameter:nil
|
| - withURL:nil
|
| - fromSourceApplication:nil
|
| - fromSecureSourceApplication:nil]);
|
| + ChromeAppStartupParameters* params = [ChromeAppStartupParameters
|
| + newAppStartupParametersForCommand:@"voicesearch"
|
| + withParameter:nil
|
| + withURL:nil
|
| + fromSourceApplication:nil
|
| + fromSecureSourceApplication:nil];
|
|
|
| std::string expectedUrlString =
|
| base::StringPrintf("%s://%s/", kChromeUIScheme, kChromeUINewTabHost);
|
| @@ -168,12 +166,12 @@ TEST_F(AppStartupParametersTest, ParseURLWithAppGroupVoiceSearch) {
|
| }
|
|
|
| TEST_F(AppStartupParametersTest, ParseURLWithAppGroupNewTab) {
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| + ChromeAppStartupParameters* params =
|
| [ChromeAppStartupParameters newAppStartupParametersForCommand:@"newtab"
|
| withParameter:nil
|
| withURL:nil
|
| fromSourceApplication:nil
|
| - fromSecureSourceApplication:nil]);
|
| + fromSecureSourceApplication:nil];
|
| std::string expectedUrlString =
|
| base::StringPrintf("%s://%s/", kChromeUIScheme, kChromeUINewTabHost);
|
|
|
| @@ -182,24 +180,23 @@ TEST_F(AppStartupParametersTest, ParseURLWithAppGroupNewTab) {
|
| }
|
|
|
| TEST_F(AppStartupParametersTest, ParseURLWithAppGroupOpenURL) {
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| - [ChromeAppStartupParameters
|
| - newAppStartupParametersForCommand:@"openurl"
|
| - withParameter:@"http://foo/bar"
|
| - withURL:nil
|
| - fromSourceApplication:nil
|
| - fromSecureSourceApplication:nil]);
|
| + ChromeAppStartupParameters* params = [ChromeAppStartupParameters
|
| + newAppStartupParametersForCommand:@"openurl"
|
| + withParameter:@"http://foo/bar"
|
| + withURL:nil
|
| + fromSourceApplication:nil
|
| + fromSecureSourceApplication:nil];
|
|
|
| EXPECT_EQ("http://foo/bar", [params externalURL].spec());
|
| }
|
|
|
| TEST_F(AppStartupParametersTest, ParseURLWithAppGroupGarbage) {
|
| - base::scoped_nsobject<ChromeAppStartupParameters> params(
|
| + ChromeAppStartupParameters* params =
|
| [ChromeAppStartupParameters newAppStartupParametersForCommand:@"garbage"
|
| withParameter:nil
|
| withURL:nil
|
| fromSourceApplication:nil
|
| - fromSecureSourceApplication:nil]);
|
| + fromSecureSourceApplication:nil];
|
| EXPECT_FALSE(params);
|
| }
|
|
|
|
|