| 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 |