browsing_data_appcache_helper_unittest.cc revision c407dc5cd9bdc5668497f21b26b09d988ab439de
1// Copyright (c) 2010 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_appcache_helper.h" 6 7#include "base/stl_util-inl.h" 8#include "chrome/test/testing_profile.h" 9#include "testing/gtest/include/gtest/gtest.h" 10 11namespace { 12class TestCompletionCallback : public CallbackRunner<Tuple0> { 13 public: 14 TestCompletionCallback() 15 : have_result_(false) { 16 } 17 18 bool have_result() const { return have_result_; } 19 20 virtual void RunWithParams(const Tuple0& params) { 21 have_result_ = true; 22 } 23 private: 24 bool have_result_; 25}; 26 27} // namespace 28 29TEST(CannedBrowsingDataAppCacheHelperTest, SetInfo) { 30 TestingProfile profile; 31 32 GURL manifest1("http://example1.com/manifest.xml"); 33 GURL manifest2("http://example2.com/path1/manifest.xml"); 34 GURL manifest3("http://example2.com/path2/manifest.xml"); 35 36 scoped_refptr<CannedBrowsingDataAppCacheHelper> helper = 37 new CannedBrowsingDataAppCacheHelper(&profile); 38 helper->AddAppCache(manifest1); 39 helper->AddAppCache(manifest2); 40 helper->AddAppCache(manifest3); 41 42 TestCompletionCallback callback; 43 helper->StartFetching(&callback); 44 ASSERT_TRUE(callback.have_result()); 45 46 std::map<GURL, appcache::AppCacheInfoVector>& collection = 47 helper->info_collection()->infos_by_origin; 48 49 ASSERT_EQ(2u, collection.size()); 50 EXPECT_TRUE(ContainsKey(collection, manifest1.GetOrigin())); 51 ASSERT_EQ(1u, collection[manifest1.GetOrigin()].size()); 52 EXPECT_EQ(manifest1, collection[manifest1.GetOrigin()].at(0).manifest_url); 53 54 EXPECT_TRUE(ContainsKey(collection, manifest2.GetOrigin())); 55 EXPECT_EQ(2u, collection[manifest2.GetOrigin()].size()); 56 std::set<GURL> manifest_results; 57 manifest_results.insert(collection[manifest2.GetOrigin()].at(0).manifest_url); 58 manifest_results.insert(collection[manifest2.GetOrigin()].at(1).manifest_url); 59 EXPECT_TRUE(ContainsKey(manifest_results, manifest2)); 60 EXPECT_TRUE(ContainsKey(manifest_results, manifest3)); 61} 62 63TEST(CannedBrowsingDataAppCacheHelperTest, Unique) { 64 TestingProfile profile; 65 66 GURL manifest("http://example.com/manifest.xml"); 67 68 scoped_refptr<CannedBrowsingDataAppCacheHelper> helper = 69 new CannedBrowsingDataAppCacheHelper(&profile); 70 helper->AddAppCache(manifest); 71 helper->AddAppCache(manifest); 72 73 TestCompletionCallback callback; 74 helper->StartFetching(&callback); 75 ASSERT_TRUE(callback.have_result()); 76 77 std::map<GURL, appcache::AppCacheInfoVector>& collection = 78 helper->info_collection()->infos_by_origin; 79 80 ASSERT_EQ(1u, collection.size()); 81 EXPECT_TRUE(ContainsKey(collection, manifest.GetOrigin())); 82 ASSERT_EQ(1u, collection[manifest.GetOrigin()].size()); 83 EXPECT_EQ(manifest, collection[manifest.GetOrigin()].at(0).manifest_url); 84} 85