| OLD | NEW |
| 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/message_loop/message_loop.h" | 7 #include "base/message_loop/message_loop.h" |
| 8 #include "content/browser/appcache/appcache.h" |
| 9 #include "content/browser/appcache/appcache_group.h" |
| 10 #include "content/browser/appcache/appcache_host.h" |
| 11 #include "content/browser/appcache/appcache_update_job.h" |
| 8 #include "content/browser/appcache/mock_appcache_service.h" | 12 #include "content/browser/appcache/mock_appcache_service.h" |
| 13 #include "content/common/appcache_interfaces.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 10 #include "webkit/browser/appcache/appcache.h" | |
| 11 #include "webkit/browser/appcache/appcache_group.h" | |
| 12 #include "webkit/browser/appcache/appcache_host.h" | |
| 13 #include "webkit/browser/appcache/appcache_update_job.h" | |
| 14 #include "webkit/common/appcache/appcache_interfaces.h" | |
| 15 | |
| 16 using appcache::AppCache; | |
| 17 using appcache::AppCacheFrontend; | |
| 18 using appcache::AppCacheGroup; | |
| 19 using appcache::AppCacheHost; | |
| 20 using appcache::AppCacheServiceImpl; | |
| 21 using appcache::AppCacheUpdateJob; | |
| 22 | 15 |
| 23 namespace { | 16 namespace { |
| 24 | 17 |
| 25 class TestAppCacheFrontend : public appcache::AppCacheFrontend { | 18 class TestAppCacheFrontend : public content::AppCacheFrontend { |
| 26 public: | 19 public: |
| 27 TestAppCacheFrontend() | 20 TestAppCacheFrontend() |
| 28 : last_host_id_(-1), last_cache_id_(-1), | 21 : last_host_id_(-1), last_cache_id_(-1), |
| 29 last_status_(appcache::APPCACHE_STATUS_OBSOLETE) { | 22 last_status_(content::APPCACHE_STATUS_OBSOLETE) { |
| 30 } | 23 } |
| 31 | 24 |
| 32 virtual void OnCacheSelected( | 25 virtual void OnCacheSelected( |
| 33 int host_id, const appcache::AppCacheInfo& info) OVERRIDE { | 26 int host_id, const content::AppCacheInfo& info) OVERRIDE { |
| 34 last_host_id_ = host_id; | 27 last_host_id_ = host_id; |
| 35 last_cache_id_ = info.cache_id; | 28 last_cache_id_ = info.cache_id; |
| 36 last_status_ = info.status; | 29 last_status_ = info.status; |
| 37 } | 30 } |
| 38 | 31 |
| 39 virtual void OnStatusChanged(const std::vector<int>& host_ids, | 32 virtual void OnStatusChanged(const std::vector<int>& host_ids, |
| 40 appcache::AppCacheStatus status) OVERRIDE { | 33 content::AppCacheStatus status) OVERRIDE { |
| 41 } | 34 } |
| 42 | 35 |
| 43 virtual void OnEventRaised(const std::vector<int>& host_ids, | 36 virtual void OnEventRaised(const std::vector<int>& host_ids, |
| 44 appcache::AppCacheEventID event_id) OVERRIDE { | 37 content::AppCacheEventID event_id) OVERRIDE { |
| 45 } | 38 } |
| 46 | 39 |
| 47 virtual void OnErrorEventRaised(const std::vector<int>& host_ids, | 40 virtual void OnErrorEventRaised(const std::vector<int>& host_ids, |
| 48 const appcache::AppCacheErrorDetails& details) | 41 const content::AppCacheErrorDetails& details) |
| 49 OVERRIDE {} | 42 OVERRIDE {} |
| 50 | 43 |
| 51 virtual void OnProgressEventRaised(const std::vector<int>& host_ids, | 44 virtual void OnProgressEventRaised(const std::vector<int>& host_ids, |
| 52 const GURL& url, | 45 const GURL& url, |
| 53 int num_total, int num_complete) OVERRIDE { | 46 int num_total, int num_complete) OVERRIDE { |
| 54 } | 47 } |
| 55 | 48 |
| 56 virtual void OnLogMessage(int host_id, appcache::AppCacheLogLevel log_level, | 49 virtual void OnLogMessage(int host_id, content::AppCacheLogLevel log_level, |
| 57 const std::string& message) OVERRIDE { | 50 const std::string& message) OVERRIDE { |
| 58 } | 51 } |
| 59 | 52 |
| 60 virtual void OnContentBlocked(int host_id, | 53 virtual void OnContentBlocked(int host_id, |
| 61 const GURL& manifest_url) OVERRIDE { | 54 const GURL& manifest_url) OVERRIDE { |
| 62 } | 55 } |
| 63 | 56 |
| 64 int last_host_id_; | 57 int last_host_id_; |
| 65 int64 last_cache_id_; | 58 int64 last_cache_id_; |
| 66 appcache::AppCacheStatus last_status_; | 59 content::AppCacheStatus last_status_; |
| 67 }; | 60 }; |
| 68 | 61 |
| 69 } // namespace anon | 62 } // namespace anon |
| 70 | 63 |
| 71 namespace content { | 64 namespace content { |
| 72 | 65 |
| 73 class TestUpdateObserver : public AppCacheGroup::UpdateObserver { | 66 class TestUpdateObserver : public AppCacheGroup::UpdateObserver { |
| 74 public: | 67 public: |
| 75 TestUpdateObserver() : update_completed_(false), group_has_cache_(false) { | 68 TestUpdateObserver() : update_completed_(false), group_has_cache_(false) { |
| 76 } | 69 } |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 190 | 183 |
| 191 AppCache* cache1 = new AppCache(service.storage(), 111); | 184 AppCache* cache1 = new AppCache(service.storage(), 111); |
| 192 cache1->set_complete(true); | 185 cache1->set_complete(true); |
| 193 cache1->set_update_time(now); | 186 cache1->set_update_time(now); |
| 194 group->AddCache(cache1); | 187 group->AddCache(cache1); |
| 195 EXPECT_EQ(cache1, group->newest_complete_cache()); | 188 EXPECT_EQ(cache1, group->newest_complete_cache()); |
| 196 | 189 |
| 197 host1.AssociateCompleteCache(cache1); | 190 host1.AssociateCompleteCache(cache1); |
| 198 EXPECT_EQ(frontend.last_host_id_, host1.host_id()); | 191 EXPECT_EQ(frontend.last_host_id_, host1.host_id()); |
| 199 EXPECT_EQ(frontend.last_cache_id_, cache1->cache_id()); | 192 EXPECT_EQ(frontend.last_cache_id_, cache1->cache_id()); |
| 200 EXPECT_EQ(frontend.last_status_, appcache::APPCACHE_STATUS_IDLE); | 193 EXPECT_EQ(frontend.last_status_, APPCACHE_STATUS_IDLE); |
| 201 | 194 |
| 202 host2.AssociateCompleteCache(cache1); | 195 host2.AssociateCompleteCache(cache1); |
| 203 EXPECT_EQ(frontend.last_host_id_, host2.host_id()); | 196 EXPECT_EQ(frontend.last_host_id_, host2.host_id()); |
| 204 EXPECT_EQ(frontend.last_cache_id_, cache1->cache_id()); | 197 EXPECT_EQ(frontend.last_cache_id_, cache1->cache_id()); |
| 205 EXPECT_EQ(frontend.last_status_, appcache::APPCACHE_STATUS_IDLE); | 198 EXPECT_EQ(frontend.last_status_, APPCACHE_STATUS_IDLE); |
| 206 | 199 |
| 207 AppCache* cache2 = new AppCache(service.storage(), 222); | 200 AppCache* cache2 = new AppCache(service.storage(), 222); |
| 208 cache2->set_complete(true); | 201 cache2->set_complete(true); |
| 209 cache2->set_update_time(now + base::TimeDelta::FromDays(1)); | 202 cache2->set_update_time(now + base::TimeDelta::FromDays(1)); |
| 210 group->AddCache(cache2); | 203 group->AddCache(cache2); |
| 211 EXPECT_EQ(cache2, group->newest_complete_cache()); | 204 EXPECT_EQ(cache2, group->newest_complete_cache()); |
| 212 | 205 |
| 213 // Unassociate all hosts from older cache. | 206 // Unassociate all hosts from older cache. |
| 214 host1.AssociateNoCache(GURL()); | 207 host1.AssociateNoCache(GURL()); |
| 215 host2.AssociateNoCache(GURL()); | 208 host2.AssociateNoCache(GURL()); |
| 216 EXPECT_EQ(frontend.last_host_id_, host2.host_id()); | 209 EXPECT_EQ(frontend.last_host_id_, host2.host_id()); |
| 217 EXPECT_EQ(frontend.last_cache_id_, appcache::kAppCacheNoCacheId); | 210 EXPECT_EQ(frontend.last_cache_id_, kAppCacheNoCacheId); |
| 218 EXPECT_EQ(frontend.last_status_, appcache::APPCACHE_STATUS_UNCACHED); | 211 EXPECT_EQ(frontend.last_status_, APPCACHE_STATUS_UNCACHED); |
| 219 } | 212 } |
| 220 | 213 |
| 221 TEST_F(AppCacheGroupTest, StartUpdate) { | 214 TEST_F(AppCacheGroupTest, StartUpdate) { |
| 222 MockAppCacheService service; | 215 MockAppCacheService service; |
| 223 scoped_refptr<AppCacheGroup> group( | 216 scoped_refptr<AppCacheGroup> group( |
| 224 new AppCacheGroup(service.storage(), GURL("http://foo.com"), 111)); | 217 new AppCacheGroup(service.storage(), GURL("http://foo.com"), 111)); |
| 225 | 218 |
| 226 // Set state to checking to prevent update job from executing fetches. | 219 // Set state to checking to prevent update job from executing fetches. |
| 227 group->update_status_ = AppCacheGroup::CHECKING; | 220 group->update_status_ = AppCacheGroup::CHECKING; |
| 228 group->StartUpdate(); | 221 group->StartUpdate(); |
| (...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 300 EXPECT_TRUE(group->FindObserver(&host, group->observers_)); | 293 EXPECT_TRUE(group->FindObserver(&host, group->observers_)); |
| 301 | 294 |
| 302 // Delete update to cause it to complete. Verify host is notified. | 295 // Delete update to cause it to complete. Verify host is notified. |
| 303 delete group->update_job_; | 296 delete group->update_job_; |
| 304 EXPECT_EQ(AppCacheGroup::IDLE, group->update_status_); | 297 EXPECT_EQ(AppCacheGroup::IDLE, group->update_status_); |
| 305 EXPECT_TRUE(group->restart_update_task_.IsCancelled()); | 298 EXPECT_TRUE(group->restart_update_task_.IsCancelled()); |
| 306 EXPECT_TRUE(host.update_completed_); | 299 EXPECT_TRUE(host.update_completed_); |
| 307 } | 300 } |
| 308 | 301 |
| 309 } // namespace content | 302 } // namespace content |
| OLD | NEW |