1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/command_line.h" 6 #include "components/google/core/browser/google_switches.h" 7 #include "components/google/core/browser/google_url_tracker.h" 8 #include "components/google/core/browser/google_util.h" 9 #include "testing/gtest/include/gtest/gtest.h" 10 11 using google_util::IsGoogleDomainUrl; 12 13 14 // Helpers -------------------------------------------------------------------- 15 16 namespace { 17 18 // These functions merely provide brevity in the callers. 19 20 bool IsHomePage(const std::string& url) { 21 return google_util::IsGoogleHomePageUrl(GURL(url)); 22 } 23 24 bool IsSearch(const std::string& url) { 25 return google_util::IsGoogleSearchUrl(GURL(url)); 26 } 27 28 bool StartsWithBaseURL(const std::string& url) { 29 return google_util::StartsWithCommandLineGoogleBaseURL(GURL(url)); 30 } 31 32 } // namespace 33 34 35 // Actual tests --------------------------------------------------------------- 36 37 TEST(GoogleUtilTest, GoodHomePagesNonSecure) { 38 // Valid home page hosts. 39 EXPECT_TRUE(IsHomePage(GoogleURLTracker::kDefaultGoogleHomepage)); 40 EXPECT_TRUE(IsHomePage("http://google.com")); 41 EXPECT_TRUE(IsHomePage("http://www.google.com")); 42 EXPECT_TRUE(IsHomePage("http://www.google.ca")); 43 EXPECT_TRUE(IsHomePage("http://www.google.co.uk")); 44 EXPECT_TRUE(IsHomePage("http://www.google.com:80/")); 45 46 // Only the paths /, /webhp, and /ig.* are valid. Query parameters are 47 // ignored. 48 EXPECT_TRUE(IsHomePage("http://www.google.com/")); 49 EXPECT_TRUE(IsHomePage("http://www.google.com/webhp")); 50 EXPECT_TRUE(IsHomePage("http://www.google.com/webhp?rlz=TEST")); 51 EXPECT_TRUE(IsHomePage("http://www.google.com/ig")); 52 EXPECT_TRUE(IsHomePage("http://www.google.com/ig/foo")); 53 EXPECT_TRUE(IsHomePage("http://www.google.com/ig?rlz=TEST")); 54 EXPECT_TRUE(IsHomePage("http://www.google.com/ig/foo?rlz=TEST")); 55 } 56 57 TEST(GoogleUtilTest, GoodHomePagesSecure) { 58 // Valid home page hosts. 59 EXPECT_TRUE(IsHomePage("https://google.com")); 60 EXPECT_TRUE(IsHomePage("https://www.google.com")); 61 EXPECT_TRUE(IsHomePage("https://www.google.ca")); 62 EXPECT_TRUE(IsHomePage("https://www.google.co.uk")); 63 EXPECT_TRUE(IsHomePage("https://www.google.com:443/")); 64 65 // Only the paths /, /webhp, and /ig.* are valid. Query parameters are 66 // ignored. 67 EXPECT_TRUE(IsHomePage("https://www.google.com/")); 68 EXPECT_TRUE(IsHomePage("https://www.google.com/webhp")); 69 EXPECT_TRUE(IsHomePage("https://www.google.com/webhp?rlz=TEST")); 70 EXPECT_TRUE(IsHomePage("https://www.google.com/ig")); 71 EXPECT_TRUE(IsHomePage("https://www.google.com/ig/foo")); 72 EXPECT_TRUE(IsHomePage("https://www.google.com/ig?rlz=TEST")); 73 EXPECT_TRUE(IsHomePage("https://www.google.com/ig/foo?rlz=TEST")); 74 } 75 76 TEST(GoogleUtilTest, BadHomePages) { 77 EXPECT_FALSE(IsHomePage(std::string())); 78 79 // If specified, only the "www" subdomain is OK. 80 EXPECT_FALSE(IsHomePage("http://maps.google.com")); 81 EXPECT_FALSE(IsHomePage("http://foo.google.com")); 82 83 // No non-standard port numbers. 84 EXPECT_FALSE(IsHomePage("http://www.google.com:1234")); 85 EXPECT_FALSE(IsHomePage("https://www.google.com:5678")); 86 87 // Invalid TLDs. 88 EXPECT_FALSE(IsHomePage("http://www.google.abc")); 89 EXPECT_FALSE(IsHomePage("http://www.google.com.abc")); 90 EXPECT_FALSE(IsHomePage("http://www.google.abc.com")); 91 EXPECT_FALSE(IsHomePage("http://www.google.ab.cd")); 92 EXPECT_FALSE(IsHomePage("http://www.google.uk.qq")); 93 94 // Must be http or https. 95 EXPECT_FALSE(IsHomePage("ftp://www.google.com")); 96 EXPECT_FALSE(IsHomePage("file://does/not/exist")); 97 EXPECT_FALSE(IsHomePage("bad://www.google.com")); 98 EXPECT_FALSE(IsHomePage("www.google.com")); 99 100 // Only the paths /, /webhp, and /ig.* are valid. 101 EXPECT_FALSE(IsHomePage("http://www.google.com/abc")); 102 EXPECT_FALSE(IsHomePage("http://www.google.com/webhpabc")); 103 EXPECT_FALSE(IsHomePage("http://www.google.com/webhp/abc")); 104 EXPECT_FALSE(IsHomePage("http://www.google.com/abcig")); 105 EXPECT_FALSE(IsHomePage("http://www.google.com/webhp/ig")); 106 107 // A search URL should not be identified as a home page URL. 108 EXPECT_FALSE(IsHomePage("http://www.google.com/search?q=something")); 109 110 // Path is case sensitive. 111 EXPECT_FALSE(IsHomePage("https://www.google.com/WEBHP")); 112 } 113 114 TEST(GoogleUtilTest, GoodSearchPagesNonSecure) { 115 // Queries with path "/search" need to have the query parameter in either 116 // the url parameter or the hash fragment. 117 EXPECT_TRUE(IsSearch("http://www.google.com/search?q=something")); 118 EXPECT_TRUE(IsSearch("http://www.google.com/search#q=something")); 119 EXPECT_TRUE(IsSearch("http://www.google.com/search?name=bob&q=something")); 120 EXPECT_TRUE(IsSearch("http://www.google.com/search?name=bob#q=something")); 121 EXPECT_TRUE(IsSearch("http://www.google.com/search?name=bob#age=24&q=thing")); 122 EXPECT_TRUE(IsSearch("http://www.google.co.uk/search?q=something")); 123 // It's actually valid for both to have the query parameter. 124 EXPECT_TRUE(IsSearch("http://www.google.com/search?q=something#q=other")); 125 126 // Queries with path "/webhp", "/" or "" need to have the query parameter in 127 // the hash fragment. 128 EXPECT_TRUE(IsSearch("http://www.google.com/webhp#q=something")); 129 EXPECT_TRUE(IsSearch("http://www.google.com/webhp#name=bob&q=something")); 130 EXPECT_TRUE(IsSearch("http://www.google.com/webhp?name=bob#q=something")); 131 EXPECT_TRUE(IsSearch("http://www.google.com/webhp?name=bob#age=24&q=thing")); 132 133 EXPECT_TRUE(IsSearch("http://www.google.com/#q=something")); 134 EXPECT_TRUE(IsSearch("http://www.google.com/#name=bob&q=something")); 135 EXPECT_TRUE(IsSearch("http://www.google.com/?name=bob#q=something")); 136 EXPECT_TRUE(IsSearch("http://www.google.com/?name=bob#age=24&q=something")); 137 138 EXPECT_TRUE(IsSearch("http://www.google.com#q=something")); 139 EXPECT_TRUE(IsSearch("http://www.google.com#name=bob&q=something")); 140 EXPECT_TRUE(IsSearch("http://www.google.com?name=bob#q=something")); 141 EXPECT_TRUE(IsSearch("http://www.google.com?name=bob#age=24&q=something")); 142 } 143 144 TEST(GoogleUtilTest, GoodSearchPagesSecure) { 145 // Queries with path "/search" need to have the query parameter in either 146 // the url parameter or the hash fragment. 147 EXPECT_TRUE(IsSearch("https://www.google.com/search?q=something")); 148 EXPECT_TRUE(IsSearch("https://www.google.com/search#q=something")); 149 EXPECT_TRUE(IsSearch("https://www.google.com/search?name=bob&q=something")); 150 EXPECT_TRUE(IsSearch("https://www.google.com/search?name=bob#q=something")); 151 EXPECT_TRUE(IsSearch("https://www.google.com/search?name=bob#age=24&q=q")); 152 EXPECT_TRUE(IsSearch("https://www.google.co.uk/search?q=something")); 153 // It's actually valid for both to have the query parameter. 154 EXPECT_TRUE(IsSearch("https://www.google.com/search?q=something#q=other")); 155 156 // Queries with path "/webhp", "/" or "" need to have the query parameter in 157 // the hash fragment. 158 EXPECT_TRUE(IsSearch("https://www.google.com/webhp#q=something")); 159 EXPECT_TRUE(IsSearch("https://www.google.com/webhp#name=bob&q=something")); 160 EXPECT_TRUE(IsSearch("https://www.google.com/webhp?name=bob#q=something")); 161 EXPECT_TRUE(IsSearch("https://www.google.com/webhp?name=bob#age=24&q=thing")); 162 163 EXPECT_TRUE(IsSearch("https://www.google.com/#q=something")); 164 EXPECT_TRUE(IsSearch("https://www.google.com/#name=bob&q=something")); 165 EXPECT_TRUE(IsSearch("https://www.google.com/?name=bob#q=something")); 166 EXPECT_TRUE(IsSearch("https://www.google.com/?name=bob#age=24&q=something")); 167 168 EXPECT_TRUE(IsSearch("https://www.google.com#q=something")); 169 EXPECT_TRUE(IsSearch("https://www.google.com#name=bob&q=something")); 170 EXPECT_TRUE(IsSearch("https://www.google.com?name=bob#q=something")); 171 EXPECT_TRUE(IsSearch("https://www.google.com?name=bob#age=24&q=something")); 172 } 173 174 TEST(GoogleUtilTest, BadSearches) { 175 // A home page URL should not be identified as a search URL. 176 EXPECT_FALSE(IsSearch(GoogleURLTracker::kDefaultGoogleHomepage)); 177 EXPECT_FALSE(IsSearch("http://google.com")); 178 EXPECT_FALSE(IsSearch("http://www.google.com")); 179 EXPECT_FALSE(IsSearch("http://www.google.com/search")); 180 EXPECT_FALSE(IsSearch("http://www.google.com/search?")); 181 182 // Must be http or https 183 EXPECT_FALSE(IsSearch("ftp://www.google.com/search?q=something")); 184 EXPECT_FALSE(IsSearch("file://does/not/exist/search?q=something")); 185 EXPECT_FALSE(IsSearch("bad://www.google.com/search?q=something")); 186 EXPECT_FALSE(IsSearch("www.google.com/search?q=something")); 187 188 // Can't have an empty query parameter. 189 EXPECT_FALSE(IsSearch("http://www.google.com/search?q=")); 190 EXPECT_FALSE(IsSearch("http://www.google.com/search?name=bob&q=")); 191 EXPECT_FALSE(IsSearch("http://www.google.com/webhp#q=")); 192 EXPECT_FALSE(IsSearch("http://www.google.com/webhp#name=bob&q=")); 193 194 // Home page searches without a hash fragment query parameter are invalid. 195 EXPECT_FALSE(IsSearch("http://www.google.com/webhp?q=something")); 196 EXPECT_FALSE(IsSearch("http://www.google.com/webhp?q=something#no=good")); 197 EXPECT_FALSE(IsSearch("http://www.google.com/webhp?name=bob&q=something")); 198 EXPECT_FALSE(IsSearch("http://www.google.com/?q=something")); 199 EXPECT_FALSE(IsSearch("http://www.google.com?q=something")); 200 201 // Some paths are outright invalid as searches. 202 EXPECT_FALSE(IsSearch("http://www.google.com/notreal?q=something")); 203 EXPECT_FALSE(IsSearch("http://www.google.com/chrome?q=something")); 204 EXPECT_FALSE(IsSearch("http://www.google.com/search/nogood?q=something")); 205 EXPECT_FALSE(IsSearch("http://www.google.com/webhp/nogood#q=something")); 206 EXPECT_FALSE(IsSearch(std::string())); 207 208 // Case sensitive paths. 209 EXPECT_FALSE(IsSearch("http://www.google.com/SEARCH?q=something")); 210 EXPECT_FALSE(IsSearch("http://www.google.com/WEBHP#q=something")); 211 } 212 213 TEST(GoogleUtilTest, GoogleDomains) { 214 // Test some good Google domains (valid TLDs). 215 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://www.google.com"), 216 google_util::ALLOW_SUBDOMAIN, 217 google_util::DISALLOW_NON_STANDARD_PORTS)); 218 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://google.com"), 219 google_util::ALLOW_SUBDOMAIN, 220 google_util::DISALLOW_NON_STANDARD_PORTS)); 221 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://www.google.ca"), 222 google_util::ALLOW_SUBDOMAIN, 223 google_util::DISALLOW_NON_STANDARD_PORTS)); 224 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://www.google.biz.tj"), 225 google_util::ALLOW_SUBDOMAIN, 226 google_util::DISALLOW_NON_STANDARD_PORTS)); 227 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://www.google.com/search?q=thing"), 228 google_util::ALLOW_SUBDOMAIN, 229 google_util::DISALLOW_NON_STANDARD_PORTS)); 230 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://www.google.com/webhp"), 231 google_util::ALLOW_SUBDOMAIN, 232 google_util::DISALLOW_NON_STANDARD_PORTS)); 233 234 // Test some bad Google domains (invalid TLDs). 235 EXPECT_FALSE(IsGoogleDomainUrl(GURL("http://www.google.notrealtld"), 236 google_util::ALLOW_SUBDOMAIN, 237 google_util::DISALLOW_NON_STANDARD_PORTS)); 238 EXPECT_FALSE(IsGoogleDomainUrl(GURL("http://www.google.faketld/search?q=q"), 239 google_util::ALLOW_SUBDOMAIN, 240 google_util::DISALLOW_NON_STANDARD_PORTS)); 241 EXPECT_FALSE(IsGoogleDomainUrl(GURL("http://www.yahoo.com"), 242 google_util::ALLOW_SUBDOMAIN, 243 google_util::DISALLOW_NON_STANDARD_PORTS)); 244 245 // Test subdomain checks. 246 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://images.google.com"), 247 google_util::ALLOW_SUBDOMAIN, 248 google_util::DISALLOW_NON_STANDARD_PORTS)); 249 EXPECT_FALSE(IsGoogleDomainUrl(GURL("http://images.google.com"), 250 google_util::DISALLOW_SUBDOMAIN, 251 google_util::DISALLOW_NON_STANDARD_PORTS)); 252 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://google.com"), 253 google_util::DISALLOW_SUBDOMAIN, 254 google_util::DISALLOW_NON_STANDARD_PORTS)); 255 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://www.google.com"), 256 google_util::DISALLOW_SUBDOMAIN, 257 google_util::DISALLOW_NON_STANDARD_PORTS)); 258 259 // Port and scheme checks. 260 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://www.google.com:80"), 261 google_util::DISALLOW_SUBDOMAIN, 262 google_util::DISALLOW_NON_STANDARD_PORTS)); 263 EXPECT_FALSE(IsGoogleDomainUrl(GURL("http://www.google.com:123"), 264 google_util::DISALLOW_SUBDOMAIN, 265 google_util::DISALLOW_NON_STANDARD_PORTS)); 266 EXPECT_TRUE(IsGoogleDomainUrl(GURL("https://www.google.com:443"), 267 google_util::DISALLOW_SUBDOMAIN, 268 google_util::DISALLOW_NON_STANDARD_PORTS)); 269 EXPECT_FALSE(IsGoogleDomainUrl(GURL("http://www.google.com:123"), 270 google_util::DISALLOW_SUBDOMAIN, 271 google_util::DISALLOW_NON_STANDARD_PORTS)); 272 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://www.google.com:123"), 273 google_util::DISALLOW_SUBDOMAIN, 274 google_util::ALLOW_NON_STANDARD_PORTS)); 275 EXPECT_TRUE(IsGoogleDomainUrl(GURL("https://www.google.com:123"), 276 google_util::DISALLOW_SUBDOMAIN, 277 google_util::ALLOW_NON_STANDARD_PORTS)); 278 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://www.google.com:80"), 279 google_util::DISALLOW_SUBDOMAIN, 280 google_util::ALLOW_NON_STANDARD_PORTS)); 281 EXPECT_TRUE(IsGoogleDomainUrl(GURL("https://www.google.com:443"), 282 google_util::DISALLOW_SUBDOMAIN, 283 google_util::ALLOW_NON_STANDARD_PORTS)); 284 EXPECT_FALSE(IsGoogleDomainUrl(GURL("file://www.google.com"), 285 google_util::DISALLOW_SUBDOMAIN, 286 google_util::DISALLOW_NON_STANDARD_PORTS)); 287 EXPECT_FALSE(IsGoogleDomainUrl(GURL("doesnotexist://www.google.com"), 288 google_util::DISALLOW_SUBDOMAIN, 289 google_util::DISALLOW_NON_STANDARD_PORTS)); 290 } 291 292 TEST(GoogleUtilTest, GoogleBaseURLNotSpecified) { 293 // When no command-line flag is specified, no input to 294 // StartsWithCommandLineGoogleBaseURL() should return true. 295 EXPECT_FALSE(StartsWithBaseURL(std::string())); 296 EXPECT_FALSE(StartsWithBaseURL("http://www.foo.com/")); 297 EXPECT_FALSE(StartsWithBaseURL("http://www.google.com/")); 298 299 // By default, none of the IsGoogleXXX functions should return true for a 300 // "foo.com" URL. 301 EXPECT_FALSE(IsGoogleHostname("www.foo.com", 302 google_util::DISALLOW_SUBDOMAIN)); 303 EXPECT_FALSE(IsGoogleDomainUrl(GURL("http://www.foo.com/xyz"), 304 google_util::DISALLOW_SUBDOMAIN, 305 google_util::DISALLOW_NON_STANDARD_PORTS)); 306 EXPECT_FALSE(IsGoogleDomainUrl(GURL("https://www.foo.com/"), 307 google_util::DISALLOW_SUBDOMAIN, 308 google_util::DISALLOW_NON_STANDARD_PORTS)); 309 EXPECT_FALSE(IsHomePage("https://www.foo.com/webhp")); 310 EXPECT_FALSE(IsSearch("http://www.foo.com/search?q=a")); 311 312 // Override the Google base URL on the command line. 313 CommandLine::ForCurrentProcess()->AppendSwitchASCII(switches::kGoogleBaseURL, 314 "http://www.foo.com/"); 315 316 // Only URLs which start with exactly the string on the command line should 317 // cause StartsWithCommandLineGoogleBaseURL() to return true. 318 EXPECT_FALSE(StartsWithBaseURL(std::string())); 319 EXPECT_TRUE(StartsWithBaseURL("http://www.foo.com/")); 320 EXPECT_TRUE(StartsWithBaseURL("http://www.foo.com/abc")); 321 EXPECT_FALSE(StartsWithBaseURL("https://www.foo.com/")); 322 EXPECT_FALSE(StartsWithBaseURL("http://www.google.com/")); 323 324 // The various IsGoogleXXX functions should respect the command-line flag. 325 EXPECT_TRUE(IsGoogleHostname("www.foo.com", google_util::DISALLOW_SUBDOMAIN)); 326 EXPECT_FALSE(IsGoogleHostname("foo.com", google_util::ALLOW_SUBDOMAIN)); 327 EXPECT_TRUE(IsGoogleDomainUrl(GURL("http://www.foo.com/xyz"), 328 google_util::DISALLOW_SUBDOMAIN, 329 google_util::DISALLOW_NON_STANDARD_PORTS)); 330 EXPECT_TRUE(IsGoogleDomainUrl(GURL("https://www.foo.com/"), 331 google_util::DISALLOW_SUBDOMAIN, 332 google_util::DISALLOW_NON_STANDARD_PORTS)); 333 EXPECT_TRUE(IsHomePage("https://www.foo.com/webhp")); 334 EXPECT_FALSE(IsHomePage("http://www.foo.com/xyz")); 335 EXPECT_TRUE(IsSearch("http://www.foo.com/search?q=a")); 336 } 337 338 TEST(GoogleUtilTest, GoogleBaseURLDisallowQuery) { 339 CommandLine::ForCurrentProcess()->AppendSwitchASCII(switches::kGoogleBaseURL, 340 "http://www.foo.com/?q="); 341 EXPECT_FALSE(google_util::CommandLineGoogleBaseURL().is_valid()); 342 } 343 344 TEST(GoogleUtilTest, GoogleBaseURLDisallowRef) { 345 CommandLine::ForCurrentProcess()->AppendSwitchASCII(switches::kGoogleBaseURL, 346 "http://www.foo.com/#q="); 347 EXPECT_FALSE(google_util::CommandLineGoogleBaseURL().is_valid()); 348 } 349 350 TEST(GoogleUtilTest, GoogleBaseURLFixup) { 351 CommandLine::ForCurrentProcess()->AppendSwitchASCII(switches::kGoogleBaseURL, 352 "www.foo.com"); 353 ASSERT_TRUE(google_util::CommandLineGoogleBaseURL().is_valid()); 354 EXPECT_EQ("http://www.foo.com/", 355 google_util::CommandLineGoogleBaseURL().spec()); 356 } 357 358 TEST(GoogleUtilTest, YoutubeDomains) { 359 EXPECT_TRUE(IsYoutubeDomainUrl(GURL("http://www.youtube.com"), 360 google_util::ALLOW_SUBDOMAIN, 361 google_util::DISALLOW_NON_STANDARD_PORTS)); 362 EXPECT_TRUE(IsYoutubeDomainUrl(GURL("http://youtube.com"), 363 google_util::ALLOW_SUBDOMAIN, 364 google_util::DISALLOW_NON_STANDARD_PORTS)); 365 EXPECT_TRUE(IsYoutubeDomainUrl(GURL("http://youtube.com/path/main.html"), 366 google_util::ALLOW_SUBDOMAIN, 367 google_util::DISALLOW_NON_STANDARD_PORTS)); 368 EXPECT_FALSE(IsYoutubeDomainUrl(GURL("http://notyoutube.com"), 369 google_util::ALLOW_SUBDOMAIN, 370 google_util::DISALLOW_NON_STANDARD_PORTS)); 371 372 // TLD checks. 373 EXPECT_TRUE(IsYoutubeDomainUrl(GURL("http://www.youtube.ca"), 374 google_util::ALLOW_SUBDOMAIN, 375 google_util::DISALLOW_NON_STANDARD_PORTS)); 376 EXPECT_TRUE(IsYoutubeDomainUrl(GURL("http://www.youtube.co.uk"), 377 google_util::ALLOW_SUBDOMAIN, 378 google_util::DISALLOW_NON_STANDARD_PORTS)); 379 EXPECT_FALSE(IsYoutubeDomainUrl(GURL("http://www.youtube.notrealtld"), 380 google_util::ALLOW_SUBDOMAIN, 381 google_util::DISALLOW_NON_STANDARD_PORTS)); 382 383 // Subdomain checks. 384 EXPECT_TRUE(IsYoutubeDomainUrl(GURL("http://images.youtube.com"), 385 google_util::ALLOW_SUBDOMAIN, 386 google_util::DISALLOW_NON_STANDARD_PORTS)); 387 EXPECT_FALSE(IsYoutubeDomainUrl(GURL("http://images.youtube.com"), 388 google_util::DISALLOW_SUBDOMAIN, 389 google_util::DISALLOW_NON_STANDARD_PORTS)); 390 391 // Port and scheme checks. 392 EXPECT_TRUE(IsYoutubeDomainUrl(GURL("http://www.youtube.com:80"), 393 google_util::DISALLOW_SUBDOMAIN, 394 google_util::DISALLOW_NON_STANDARD_PORTS)); 395 EXPECT_TRUE(IsYoutubeDomainUrl(GURL("https://www.youtube.com:443"), 396 google_util::DISALLOW_SUBDOMAIN, 397 google_util::DISALLOW_NON_STANDARD_PORTS)); 398 EXPECT_FALSE(IsYoutubeDomainUrl(GURL("http://www.youtube.com:123"), 399 google_util::DISALLOW_SUBDOMAIN, 400 google_util::DISALLOW_NON_STANDARD_PORTS)); 401 EXPECT_TRUE(IsYoutubeDomainUrl(GURL("http://www.youtube.com:123"), 402 google_util::DISALLOW_SUBDOMAIN, 403 google_util::ALLOW_NON_STANDARD_PORTS)); 404 EXPECT_FALSE(IsYoutubeDomainUrl(GURL("file://www.youtube.com"), 405 google_util::DISALLOW_SUBDOMAIN, 406 google_util::DISALLOW_NON_STANDARD_PORTS)); 407 } 408