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

Side by Side Diff: net/base/sdch_manager_unittest.cc

Issue 1051933002: Split SdchManager::Dictionary out into separate class/file. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Incorporated comments. Created 5 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
« no previous file with comments | « net/base/sdch_manager.cc ('k') | net/filter/sdch_filter.h » ('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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <limits.h> 5 #include <limits.h>
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
412 // See test CanSetExactMatchDictionary above for first try. 412 // See test CanSetExactMatchDictionary above for first try.
413 TEST_F(SdchManagerTest, CanStillSetExactMatchDictionary) { 413 TEST_F(SdchManagerTest, CanStillSetExactMatchDictionary) {
414 std::string dictionary_domain("x.y.z.google.com"); 414 std::string dictionary_domain("x.y.z.google.com");
415 std::string dictionary_text(NewSdchDictionary(dictionary_domain)); 415 std::string dictionary_text(NewSdchDictionary(dictionary_domain));
416 416
417 // Perfect match should *STILL* work. 417 // Perfect match should *STILL* work.
418 EXPECT_TRUE(AddSdchDictionary(dictionary_text, 418 EXPECT_TRUE(AddSdchDictionary(dictionary_text,
419 GURL("http://" + dictionary_domain))); 419 GURL("http://" + dictionary_domain)));
420 } 420 }
421 421
422 TEST_F(SdchManagerTest, PathMatch) {
423 bool (*PathMatch)(const std::string& path, const std::string& restriction) =
424 SdchManager::Dictionary::PathMatch;
425 // Perfect match is supported.
426 EXPECT_TRUE(PathMatch("/search", "/search"));
427 EXPECT_TRUE(PathMatch("/search/", "/search/"));
428
429 // Prefix only works if last character of restriction is a slash, or first
430 // character in path after a match is a slash. Validate each case separately.
431
432 // Rely on the slash in the path (not at the end of the restriction).
433 EXPECT_TRUE(PathMatch("/search/something", "/search"));
434 EXPECT_TRUE(PathMatch("/search/s", "/search"));
435 EXPECT_TRUE(PathMatch("/search/other", "/search"));
436 EXPECT_TRUE(PathMatch("/search/something", "/search"));
437
438 // Rely on the slash at the end of the restriction.
439 EXPECT_TRUE(PathMatch("/search/something", "/search/"));
440 EXPECT_TRUE(PathMatch("/search/s", "/search/"));
441 EXPECT_TRUE(PathMatch("/search/other", "/search/"));
442 EXPECT_TRUE(PathMatch("/search/something", "/search/"));
443
444 // Make sure less that sufficient prefix match is false.
445 EXPECT_FALSE(PathMatch("/sear", "/search"));
446 EXPECT_FALSE(PathMatch("/", "/search"));
447 EXPECT_FALSE(PathMatch(std::string(), "/search"));
448
449 // Add examples with several levels of direcories in the restriction.
450 EXPECT_FALSE(PathMatch("/search/something", "search/s"));
451 EXPECT_FALSE(PathMatch("/search/", "/search/s"));
452
453 // Make sure adding characters to path will also fail.
454 EXPECT_FALSE(PathMatch("/searching", "/search/"));
455 EXPECT_FALSE(PathMatch("/searching", "/search"));
456
457 // Make sure we're case sensitive.
458 EXPECT_FALSE(PathMatch("/ABC", "/abc"));
459 EXPECT_FALSE(PathMatch("/abc", "/ABC"));
460 }
461
462 // The following are only applicable while we have a latency test in the code, 422 // The following are only applicable while we have a latency test in the code,
463 // and can be removed when that functionality is stripped. 423 // and can be removed when that functionality is stripped.
464 TEST_F(SdchManagerTest, LatencyTestControls) { 424 TEST_F(SdchManagerTest, LatencyTestControls) {
465 GURL url("http://www.google.com"); 425 GURL url("http://www.google.com");
466 GURL url2("http://www.google2.com"); 426 GURL url2("http://www.google2.com");
467 427
468 // First make sure we default to false. 428 // First make sure we default to false.
469 EXPECT_FALSE(sdch_manager()->AllowLatencyExperiment(url)); 429 EXPECT_FALSE(sdch_manager()->AllowLatencyExperiment(url));
470 EXPECT_FALSE(sdch_manager()->AllowLatencyExperiment(url2)); 430 EXPECT_FALSE(sdch_manager()->AllowLatencyExperiment(url2));
471 431
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
629 // It should be visible if looked up by hash whether expired or not. 589 // It should be visible if looked up by hash whether expired or not.
630 scoped_ptr<base::SimpleTestClock> clock(new base::SimpleTestClock); 590 scoped_ptr<base::SimpleTestClock> clock(new base::SimpleTestClock);
631 clock->SetNow(base::Time::Now()); 591 clock->SetNow(base::Time::Now());
632 clock->Advance(base::TimeDelta::FromMinutes(5)); 592 clock->Advance(base::TimeDelta::FromMinutes(5));
633 SdchProblemCode problem_code; 593 SdchProblemCode problem_code;
634 scoped_ptr<SdchManager::DictionarySet> hash_set( 594 scoped_ptr<SdchManager::DictionarySet> hash_set(
635 sdch_manager()->GetDictionarySetByHash( 595 sdch_manager()->GetDictionarySetByHash(
636 target_gurl, server_hash, &problem_code).Pass()); 596 target_gurl, server_hash, &problem_code).Pass());
637 ASSERT_TRUE(hash_set); 597 ASSERT_TRUE(hash_set);
638 ASSERT_EQ(SDCH_OK, problem_code); 598 ASSERT_EQ(SDCH_OK, problem_code);
639 const_cast<SdchManager::Dictionary*>( 599 const_cast<SdchDictionary*>(hash_set->GetDictionary(server_hash))
640 hash_set->GetDictionary(server_hash))->SetClockForTesting( 600 ->SetClockForTesting(clock.Pass());
641 clock.Pass());
642 601
643 // Make sure it's not visible for advertisement, but is visible 602 // Make sure it's not visible for advertisement, but is visible
644 // if looked up by hash. 603 // if looked up by hash.
645 EXPECT_FALSE(sdch_manager()->GetDictionarySet(target_gurl)); 604 EXPECT_FALSE(sdch_manager()->GetDictionarySet(target_gurl));
646 EXPECT_TRUE(sdch_manager()->GetDictionarySetByHash( 605 EXPECT_TRUE(sdch_manager()->GetDictionarySetByHash(
647 target_gurl, server_hash, &problem_code)); 606 target_gurl, server_hash, &problem_code));
648 EXPECT_EQ(SDCH_OK, problem_code); 607 EXPECT_EQ(SDCH_OK, problem_code);
649 } 608 }
650 609
651 TEST_F(SdchManagerTest, SdchOnByDefault) { 610 TEST_F(SdchManagerTest, SdchOnByDefault) {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 642
684 sdch_manager()->RemoveObserver(&observer); 643 sdch_manager()->RemoveObserver(&observer);
685 EXPECT_EQ(1, observer.dictionary_used_notifications()); 644 EXPECT_EQ(1, observer.dictionary_used_notifications());
686 EXPECT_EQ("xyzzy", observer.last_server_hash()); 645 EXPECT_EQ("xyzzy", observer.last_server_hash());
687 sdch_manager()->OnDictionaryUsed("plugh"); 646 sdch_manager()->OnDictionaryUsed("plugh");
688 EXPECT_EQ(1, observer.dictionary_used_notifications()); 647 EXPECT_EQ(1, observer.dictionary_used_notifications());
689 EXPECT_EQ("xyzzy", observer.last_server_hash()); 648 EXPECT_EQ("xyzzy", observer.last_server_hash());
690 } 649 }
691 650
692 } // namespace net 651 } // namespace net
OLDNEW
« no previous file with comments | « net/base/sdch_manager.cc ('k') | net/filter/sdch_filter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698