Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chrome/browser/android/offline_pages/offline_page_utils.h" | 5 #include "chrome/browser/android/offline_pages/offline_page_utils.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "base/callback.h" | 10 #include "base/callback.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 48 public: | 48 public: |
| 49 OfflinePageUtilsTest(); | 49 OfflinePageUtilsTest(); |
| 50 ~OfflinePageUtilsTest() override; | 50 ~OfflinePageUtilsTest() override; |
| 51 | 51 |
| 52 void SetUp() override; | 52 void SetUp() override; |
| 53 void RunUntilIdle(); | 53 void RunUntilIdle(); |
| 54 | 54 |
| 55 // Necessary callbacks for the offline page model. | 55 // Necessary callbacks for the offline page model. |
| 56 void OnSavePageDone(SavePageResult result, int64_t offlineId); | 56 void OnSavePageDone(SavePageResult result, int64_t offlineId); |
| 57 void OnClearAllDone(); | 57 void OnClearAllDone(); |
| 58 void OnGetURLDone(const GURL& url); | |
| 58 | 59 |
| 59 // OfflinePageTestArchiver::Observer implementation: | 60 // OfflinePageTestArchiver::Observer implementation: |
| 60 void SetLastPathCreatedByArchiver(const base::FilePath& file_path) override; | 61 void SetLastPathCreatedByArchiver(const base::FilePath& file_path) override; |
| 61 | 62 |
| 62 // Offline page URL for the first page. | 63 // Offline page URL for the first page. |
| 63 const GURL& offline_url_page_1() const { return offline_url_page_1_; } | 64 const GURL& offline_url_page_1() const { return offline_url_page_1_; } |
| 64 // Offline page URL for the second page. | 65 // Offline page URL for the second page. |
| 65 const GURL& offline_url_page_2() const { return offline_url_page_2_; } | 66 const GURL& offline_url_page_2() const { return offline_url_page_2_; } |
| 66 // Offline page URL not related to any page. | 67 // Offline page URL not related to any page. |
| 67 const GURL& offline_url_missing() const { return offline_url_missing_; } | 68 const GURL& offline_url_missing() const { return offline_url_missing_; } |
| 68 | 69 |
| 69 TestingProfile* profile() { return &profile_; } | 70 TestingProfile* profile() { return &profile_; } |
| 70 | 71 |
| 71 int64_t offline_id() const { return offline_id_; } | 72 int64_t offline_id() const { return offline_id_; } |
| 72 | 73 |
| 74 GURL url() const { return url_; } | |
|
dewittj
2016/06/09 22:13:58
nit: const GURL&
Vivian
2016/06/10 17:38:14
Done.
| |
| 75 | |
| 73 private: | 76 private: |
| 74 void CreateOfflinePages(); | 77 void CreateOfflinePages(); |
| 75 std::unique_ptr<OfflinePageTestArchiver> BuildArchiver( | 78 std::unique_ptr<OfflinePageTestArchiver> BuildArchiver( |
| 76 const GURL& url, | 79 const GURL& url, |
| 77 const base::FilePath& file_name); | 80 const base::FilePath& file_name); |
| 78 | 81 |
| 79 GURL offline_url_page_1_; | 82 GURL offline_url_page_1_; |
| 80 GURL offline_url_page_2_; | 83 GURL offline_url_page_2_; |
| 81 GURL offline_url_missing_; | 84 GURL offline_url_missing_; |
| 82 | 85 |
| 83 int64_t offline_id_; | 86 int64_t offline_id_; |
| 87 GURL url_; | |
| 84 | 88 |
| 85 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; | 89 scoped_refptr<base::TestSimpleTaskRunner> task_runner_; |
| 86 base::ThreadTaskRunnerHandle task_runner_handle_; | 90 base::ThreadTaskRunnerHandle task_runner_handle_; |
| 87 TestingProfile profile_; | 91 TestingProfile profile_; |
| 88 }; | 92 }; |
| 89 | 93 |
| 90 OfflinePageUtilsTest::OfflinePageUtilsTest() | 94 OfflinePageUtilsTest::OfflinePageUtilsTest() |
| 91 : task_runner_(new base::TestSimpleTaskRunner), | 95 : task_runner_(new base::TestSimpleTaskRunner), |
| 92 task_runner_handle_(task_runner_) {} | 96 task_runner_handle_(task_runner_) {} |
| 93 | 97 |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 118 | 122 |
| 119 void OfflinePageUtilsTest::OnSavePageDone(SavePageResult result, | 123 void OfflinePageUtilsTest::OnSavePageDone(SavePageResult result, |
| 120 int64_t offline_id) { | 124 int64_t offline_id) { |
| 121 offline_id_ = offline_id; | 125 offline_id_ = offline_id; |
| 122 } | 126 } |
| 123 | 127 |
| 124 void OfflinePageUtilsTest::OnClearAllDone() { | 128 void OfflinePageUtilsTest::OnClearAllDone() { |
| 125 // Result ignored here. | 129 // Result ignored here. |
| 126 } | 130 } |
| 127 | 131 |
| 132 void OfflinePageUtilsTest::OnGetURLDone(const GURL& url) { | |
| 133 // Save url here to verify | |
| 134 url_ = url; | |
| 135 } | |
| 136 | |
| 128 void OfflinePageUtilsTest::SetLastPathCreatedByArchiver( | 137 void OfflinePageUtilsTest::SetLastPathCreatedByArchiver( |
| 129 const base::FilePath& file_path) {} | 138 const base::FilePath& file_path) {} |
| 130 | 139 |
| 131 void OfflinePageUtilsTest::CreateOfflinePages() { | 140 void OfflinePageUtilsTest::CreateOfflinePages() { |
| 132 OfflinePageModel* model = | 141 OfflinePageModel* model = |
| 133 OfflinePageModelFactory::GetForBrowserContext(profile()); | 142 OfflinePageModelFactory::GetForBrowserContext(profile()); |
| 134 | 143 |
| 135 // Create page 1. | 144 // Create page 1. |
| 136 std::unique_ptr<OfflinePageTestArchiver> archiver(BuildArchiver( | 145 std::unique_ptr<OfflinePageTestArchiver> archiver(BuildArchiver( |
| 137 kTestPage1Url, base::FilePath(FILE_PATH_LITERAL("page1.mhtml")))); | 146 kTestPage1Url, base::FilePath(FILE_PATH_LITERAL("page1.mhtml")))); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 181 // URL is invalid. | 190 // URL is invalid. |
| 182 EXPECT_FALSE(OfflinePageUtils::MightBeOfflineURL(GURL("/test.mhtml"))); | 191 EXPECT_FALSE(OfflinePageUtils::MightBeOfflineURL(GURL("/test.mhtml"))); |
| 183 // Scheme is not file. | 192 // Scheme is not file. |
| 184 EXPECT_FALSE(OfflinePageUtils::MightBeOfflineURL(GURL("http://test.com/"))); | 193 EXPECT_FALSE(OfflinePageUtils::MightBeOfflineURL(GURL("http://test.com/"))); |
| 185 // Does not end with .mhtml. | 194 // Does not end with .mhtml. |
| 186 EXPECT_FALSE(OfflinePageUtils::MightBeOfflineURL(GURL("file:///test.txt"))); | 195 EXPECT_FALSE(OfflinePageUtils::MightBeOfflineURL(GURL("file:///test.txt"))); |
| 187 // Might still be an offline page. | 196 // Might still be an offline page. |
| 188 EXPECT_TRUE(OfflinePageUtils::MightBeOfflineURL(GURL("file:///test.mhtml"))); | 197 EXPECT_TRUE(OfflinePageUtils::MightBeOfflineURL(GURL("file:///test.mhtml"))); |
| 189 } | 198 } |
| 190 | 199 |
| 191 TEST_F(OfflinePageUtilsTest, MaybeGetOfflineURLForOnlineURL) { | 200 |
| 192 EXPECT_EQ(offline_url_page_1(), | 201 TEST_F(OfflinePageUtilsTest, GetOfflineURLForOnlineURL) { |
| 193 OfflinePageUtils::MaybeGetOfflineURLForOnlineURL(profile(), | 202 OfflinePageUtils::GetOfflineURLForOnlineURL(profile(), kTestPage1Url, base::Bi nd(&OfflinePageUtilsTest::OnGetURLDone, AsWeakPtr())); |
|
dewittj
2016/06/09 22:13:58
It doesn't look like this is waiting for the call
Vivian
2016/06/10 17:38:14
Done.
| |
| 194 kTestPage1Url)); | 203 GURL url_1 = url(); |
| 195 EXPECT_EQ(offline_url_page_2(), | 204 EXPECT_EQ(offline_url_page_1(), url_1); |
| 196 OfflinePageUtils::MaybeGetOfflineURLForOnlineURL(profile(), | 205 |
| 197 kTestPage2Url)); | 206 OfflinePageUtils::GetOfflineURLForOnlineURL(profile(), kTestPage2Url, base::Bi nd(&OfflinePageUtilsTest::OnGetURLDone, AsWeakPtr())); |
| 198 EXPECT_EQ(GURL(), OfflinePageUtils::MaybeGetOfflineURLForOnlineURL( | 207 GURL url_2 = url(); |
| 199 profile(), GURL(kTestPage3Url))); | 208 EXPECT_EQ(offline_url_page_2(), url_2); |
| 209 | |
| 210 OfflinePageUtils::GetOfflineURLForOnlineURL(profile(), GURL(kTestPage3Url), ba se::Bind(&OfflinePageUtilsTest::OnGetURLDone, AsWeakPtr())); | |
| 211 GURL url_3 = url(); | |
| 212 EXPECT_EQ(GURL(), url_3); | |
| 200 } | 213 } |
| 201 | 214 |
| 215 | |
| 202 TEST_F(OfflinePageUtilsTest, MaybeGetOnlineURLForOfflineURL) { | 216 TEST_F(OfflinePageUtilsTest, MaybeGetOnlineURLForOfflineURL) { |
| 203 EXPECT_EQ(kTestPage1Url, OfflinePageUtils::MaybeGetOnlineURLForOfflineURL( | 217 EXPECT_EQ(kTestPage1Url, OfflinePageUtils::MaybeGetOnlineURLForOfflineURL( |
| 204 profile(), offline_url_page_1())); | 218 profile(), offline_url_page_1())); |
| 205 EXPECT_EQ(kTestPage2Url, OfflinePageUtils::MaybeGetOnlineURLForOfflineURL( | 219 EXPECT_EQ(kTestPage2Url, OfflinePageUtils::MaybeGetOnlineURLForOfflineURL( |
| 206 profile(), offline_url_page_2())); | 220 profile(), offline_url_page_2())); |
| 207 EXPECT_EQ(GURL::EmptyGURL(), OfflinePageUtils::MaybeGetOnlineURLForOfflineURL( | 221 EXPECT_EQ(GURL::EmptyGURL(), OfflinePageUtils::MaybeGetOnlineURLForOfflineURL( |
| 208 profile(), offline_url_missing())); | 222 profile(), offline_url_missing())); |
| 209 } | 223 } |
| 210 | 224 |
| 211 TEST_F(OfflinePageUtilsTest, IsOfflinePage) { | 225 TEST_F(OfflinePageUtilsTest, IsOfflinePage) { |
| 212 EXPECT_TRUE(OfflinePageUtils::IsOfflinePage(profile(), offline_url_page_1())); | 226 EXPECT_TRUE(OfflinePageUtils::IsOfflinePage(profile(), offline_url_page_1())); |
| 213 EXPECT_TRUE(OfflinePageUtils::IsOfflinePage(profile(), offline_url_page_2())); | 227 EXPECT_TRUE(OfflinePageUtils::IsOfflinePage(profile(), offline_url_page_2())); |
| 214 EXPECT_FALSE( | 228 EXPECT_FALSE( |
| 215 OfflinePageUtils::IsOfflinePage(profile(), offline_url_missing())); | 229 OfflinePageUtils::IsOfflinePage(profile(), offline_url_missing())); |
| 216 EXPECT_FALSE(OfflinePageUtils::IsOfflinePage(profile(), kTestPage1Url)); | 230 EXPECT_FALSE(OfflinePageUtils::IsOfflinePage(profile(), kTestPage1Url)); |
| 217 EXPECT_FALSE(OfflinePageUtils::IsOfflinePage(profile(), kTestPage2Url)); | 231 EXPECT_FALSE(OfflinePageUtils::IsOfflinePage(profile(), kTestPage2Url)); |
| 218 } | 232 } |
| 219 | 233 |
| 220 TEST_F(OfflinePageUtilsTest, HasOfflinePageForOnlineURL) { | 234 TEST_F(OfflinePageUtilsTest, HasOfflinePageForOnlineURL) { |
| 221 EXPECT_TRUE( | 235 EXPECT_TRUE( |
| 222 OfflinePageUtils::HasOfflinePageForOnlineURL(profile(), kTestPage1Url)); | 236 OfflinePageUtils::HasOfflinePageForOnlineURL(profile(), kTestPage1Url)); |
| 223 EXPECT_TRUE( | 237 EXPECT_TRUE( |
| 224 OfflinePageUtils::HasOfflinePageForOnlineURL(profile(), kTestPage2Url)); | 238 OfflinePageUtils::HasOfflinePageForOnlineURL(profile(), kTestPage2Url)); |
| 225 EXPECT_FALSE( | 239 EXPECT_FALSE( |
| 226 OfflinePageUtils::HasOfflinePageForOnlineURL(profile(), kTestPage3Url)); | 240 OfflinePageUtils::HasOfflinePageForOnlineURL(profile(), kTestPage3Url)); |
| 227 } | 241 } |
| 228 | 242 |
| 229 } // namespace offline_pages | 243 } // namespace offline_pages |
| OLD | NEW |