| Index: net/base/sdch_manager_unittest.cc
|
| diff --git a/net/base/sdch_manager_unittest.cc b/net/base/sdch_manager_unittest.cc
|
| index ba3248e3de8601c3b5701b4ac21c4376a55fb4df..9bb0e7ef05be4e7331fdf5a556c9c0bf3186acdb 100644
|
| --- a/net/base/sdch_manager_unittest.cc
|
| +++ b/net/base/sdch_manager_unittest.cc
|
| @@ -29,10 +29,18 @@ static const char kTestVcdiffDictionary[] = "DictionaryFor"
|
| class MockSdchObserver : public SdchObserver {
|
| public:
|
| MockSdchObserver()
|
| - : dictionary_used_notifications_(0),
|
| + : dictionary_added_notifications_(0),
|
| + dictionary_removed_notifications_(0),
|
| + dictionary_used_notifications_(0),
|
| get_dictionary_notifications_(0),
|
| clear_dictionaries_notifications_(0) {}
|
|
|
| + int dictionary_added_notifications() const {
|
| + return dictionary_added_notifications_;
|
| + }
|
| + int dictionary_removed_notifications() const {
|
| + return dictionary_removed_notifications_;
|
| + }
|
| std::string last_server_hash() const { return last_server_hash_; }
|
| int dictionary_used_notifications() const {
|
| return dictionary_used_notifications_;
|
| @@ -50,24 +58,34 @@ class MockSdchObserver : public SdchObserver {
|
| }
|
|
|
| // SdchObserver implementation
|
| - void OnDictionaryUsed(SdchManager* manager,
|
| - const std::string& server_hash) override {
|
| + void OnDictionaryAdded(const GURL& dictionary_url,
|
| + const std::string& server_hash) override {
|
| + last_server_hash_ = server_hash;
|
| + last_dictionary_url_ = dictionary_url;
|
| + ++dictionary_added_notifications_;
|
| + }
|
| + void OnDictionaryRemoved(const std::string& server_hash) override {
|
| + last_server_hash_ = server_hash;
|
| + ++dictionary_removed_notifications_;
|
| + }
|
| + void OnDictionaryUsed(const std::string& server_hash) override {
|
| last_server_hash_ = server_hash;
|
| ++dictionary_used_notifications_;
|
| }
|
|
|
| - void OnGetDictionary(SdchManager* manager,
|
| - const GURL& request_url,
|
| + void OnGetDictionary(const GURL& request_url,
|
| const GURL& dictionary_url) override {
|
| ++get_dictionary_notifications_;
|
| last_dictionary_request_url_ = request_url;
|
| last_dictionary_url_ = dictionary_url;
|
| }
|
| - void OnClearDictionaries(SdchManager* manager) override {
|
| + void OnClearDictionaries() override {
|
| ++clear_dictionaries_notifications_;
|
| }
|
|
|
| private:
|
| + int dictionary_added_notifications_;
|
| + int dictionary_removed_notifications_;
|
| int dictionary_used_notifications_;
|
| int get_dictionary_notifications_;
|
| int clear_dictionaries_notifications_;
|
| @@ -628,19 +646,37 @@ TEST_F(SdchManagerTest, SdchDictionaryUsed) {
|
| std::string server_hash;
|
| SdchManager::GenerateHash(dictionary_text, &client_hash, &server_hash);
|
| EXPECT_TRUE(AddSdchDictionary(dictionary_text, target_gurl));
|
| - EXPECT_EQ("xyzzy", observer.last_server_hash());
|
| EXPECT_EQ(1, observer.dictionary_used_notifications());
|
|
|
| EXPECT_TRUE(sdch_manager()->GetDictionarySet(target_gurl));
|
| - EXPECT_EQ("xyzzy", observer.last_server_hash());
|
| EXPECT_EQ(1, observer.dictionary_used_notifications());
|
|
|
| sdch_manager()->RemoveObserver(&observer);
|
| EXPECT_EQ(1, observer.dictionary_used_notifications());
|
| - EXPECT_EQ("xyzzy", observer.last_server_hash());
|
| sdch_manager()->OnDictionaryUsed("plugh");
|
| EXPECT_EQ(1, observer.dictionary_used_notifications());
|
| - EXPECT_EQ("xyzzy", observer.last_server_hash());
|
| +}
|
| +
|
| +TEST_F(SdchManagerTest, AddRemoveNotifications) {
|
| + MockSdchObserver observer;
|
| + sdch_manager()->AddObserver(&observer);
|
| +
|
| + std::string dictionary_domain("x.y.z.google.com");
|
| + GURL target_gurl("http://" + dictionary_domain);
|
| + std::string dictionary_text(NewSdchDictionary(dictionary_domain));
|
| + std::string client_hash;
|
| + std::string server_hash;
|
| + SdchManager::GenerateHash(dictionary_text, &client_hash, &server_hash);
|
| + EXPECT_TRUE(AddSdchDictionary(dictionary_text, target_gurl));
|
| + EXPECT_EQ(1, observer.dictionary_added_notifications());
|
| + EXPECT_EQ(target_gurl, observer.last_dictionary_url());
|
| + EXPECT_EQ(server_hash, observer.last_server_hash());
|
| +
|
| + EXPECT_EQ(SDCH_OK, sdch_manager()->RemoveSdchDictionary(server_hash));
|
| + EXPECT_EQ(1, observer.dictionary_removed_notifications());
|
| + EXPECT_EQ(server_hash, observer.last_server_hash());
|
| +
|
| + sdch_manager()->RemoveObserver(&observer);
|
| }
|
|
|
| } // namespace net
|
|
|