Home | History | Annotate | Download | only in browsing_data
      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
      3 // found in the LICENSE file.
      4 
      5 #include "chrome/browser/browsing_data/browsing_data_service_worker_helper.h"
      6 
      7 #include <vector>
      8 
      9 #include "base/message_loop/message_loop_proxy.h"
     10 #include "base/strings/utf_string_conversions.h"
     11 #include "chrome/test/base/testing_profile.h"
     12 #include "content/public/browser/browser_context.h"
     13 #include "content/public/browser/storage_partition.h"
     14 #include "content/public/test/test_browser_thread_bundle.h"
     15 #include "testing/gtest/include/gtest/gtest.h"
     16 
     17 namespace {
     18 
     19 class CannedBrowsingDataServiceWorkerHelperTest : public testing::Test {
     20  public:
     21   content::ServiceWorkerContext* ServiceWorkerContext() {
     22     return content::BrowserContext::GetDefaultStoragePartition(&profile_)->
     23         GetServiceWorkerContext();
     24   }
     25 
     26  private:
     27   content::TestBrowserThreadBundle thread_bundle_;
     28   TestingProfile profile_;
     29 };
     30 
     31 TEST_F(CannedBrowsingDataServiceWorkerHelperTest, Empty) {
     32   const GURL origin("https://host1:1/");
     33   std::vector<GURL> scopes;
     34   scopes.push_back(GURL("https://host1:1/*"));
     35 
     36   scoped_refptr<CannedBrowsingDataServiceWorkerHelper> helper(
     37       new CannedBrowsingDataServiceWorkerHelper(ServiceWorkerContext()));
     38 
     39   ASSERT_TRUE(helper->empty());
     40   helper->AddServiceWorker(origin, scopes);
     41   ASSERT_FALSE(helper->empty());
     42   helper->Reset();
     43   ASSERT_TRUE(helper->empty());
     44 }
     45 
     46 TEST_F(CannedBrowsingDataServiceWorkerHelperTest, Delete) {
     47   const GURL origin1("http://host1:9000");
     48   std::vector<GURL> scopes1;
     49   scopes1.push_back(GURL("http://host1:9000/*"));
     50 
     51   const GURL origin2("https://example.com");
     52   std::vector<GURL> scopes2;
     53   scopes2.push_back(GURL("https://example.com/app1/*"));
     54   scopes2.push_back(GURL("https://example.com/app2/*"));
     55 
     56   scoped_refptr<CannedBrowsingDataServiceWorkerHelper> helper(
     57       new CannedBrowsingDataServiceWorkerHelper(ServiceWorkerContext()));
     58 
     59   EXPECT_TRUE(helper->empty());
     60   helper->AddServiceWorker(origin1, scopes1);
     61   helper->AddServiceWorker(origin2, scopes2);
     62   EXPECT_EQ(2u, helper->GetServiceWorkerCount());
     63   helper->DeleteServiceWorkers(origin2);
     64   EXPECT_EQ(1u, helper->GetServiceWorkerCount());
     65 }
     66 
     67 TEST_F(CannedBrowsingDataServiceWorkerHelperTest, IgnoreExtensionsAndDevTools) {
     68   const GURL origin1("chrome-extension://abcdefghijklmnopqrstuvwxyz/");
     69   const GURL origin2("chrome-devtools://abcdefghijklmnopqrstuvwxyz/");
     70   const std::vector<GURL> scopes;
     71 
     72   scoped_refptr<CannedBrowsingDataServiceWorkerHelper> helper(
     73       new CannedBrowsingDataServiceWorkerHelper(ServiceWorkerContext()));
     74 
     75   ASSERT_TRUE(helper->empty());
     76   helper->AddServiceWorker(origin1, scopes);
     77   ASSERT_TRUE(helper->empty());
     78   helper->AddServiceWorker(origin2, scopes);
     79   ASSERT_TRUE(helper->empty());
     80 }
     81 
     82 }  // namespace
     83