| Index: ios/chrome/browser/reading_list/offline_url_utils_unittest.cc
|
| diff --git a/ios/chrome/browser/reading_list/offline_url_utils_unittest.cc b/ios/chrome/browser/reading_list/offline_url_utils_unittest.cc
|
| index 8472ffad1023019fa32a1c41b15c5f1f86be74ba..0229ceb94bb2ee8e12d69ffbad9f35bd07bcb8dc 100644
|
| --- a/ios/chrome/browser/reading_list/offline_url_utils_unittest.cc
|
| +++ b/ios/chrome/browser/reading_list/offline_url_utils_unittest.cc
|
| @@ -7,19 +7,15 @@
|
| #include <string>
|
|
|
| #include "base/files/file_path.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/strings/utf_string_conversions.h"
|
| #include "base/test/gtest_util.h"
|
| +#include "base/time/default_clock.h"
|
| +#include "components/reading_list/core/reading_list_entry.h"
|
| +#include "components/reading_list/core/reading_list_model_impl.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "url/gurl.h"
|
|
|
| -// Checks the distilled URL for the page is chrome://offline/MD5/page.html;
|
| -TEST(OfflineURLUtilsTest, DistilledURLForPathTest) {
|
| - base::FilePath page_path("MD5/page.html");
|
| - GURL distilled_url =
|
| - reading_list::OfflineURLForPath(page_path, GURL(), GURL());
|
| - EXPECT_EQ("chrome://offline/MD5/page.html", distilled_url.spec());
|
| -}
|
| -
|
| // Checks the distilled URL for the page with an onlineURL is
|
| // chrome://offline/MD5/page.html?entryURL=...&virtualURL=...
|
| TEST(OfflineURLUtilsTest, OfflineURLForPathWithEntryURLAndVirtualURLTest) {
|
| @@ -36,26 +32,26 @@ TEST(OfflineURLUtilsTest, OfflineURLForPathWithEntryURLAndVirtualURLTest) {
|
| }
|
|
|
| // Checks the parsing of offline URL chrome://offline/MD5/page.html.
|
| -// As entryURL and virtualURL are absent, they should return the offline URL.
|
| +// As entryURL and virtualURL are absent, they should be invalid.
|
| TEST(OfflineURLUtilsTest, ParseOfflineURLTest) {
|
| GURL distilled_url("chrome://offline/MD5/page.html");
|
| GURL entry_url = reading_list::EntryURLForOfflineURL(distilled_url);
|
| - EXPECT_EQ("chrome://offline/MD5/page.html", entry_url.spec());
|
| + EXPECT_TRUE(entry_url.is_empty());
|
| GURL virtual_url = reading_list::VirtualURLForOfflineURL(distilled_url);
|
| - EXPECT_EQ("chrome://offline/MD5/page.html", virtual_url.spec());
|
| + EXPECT_TRUE(virtual_url.is_empty());
|
| }
|
|
|
| // Checks the parsing of offline URL
|
| // chrome://offline/MD5/page.html?entryURL=encorded%20URL
|
| // As entryURL is present, it should be returned correctly.
|
| -// As virtualURL is absent, it should return the entryURL.
|
| +// As virtualURL is absent, it should return GURL::EmptyGURL().
|
| TEST(OfflineURLUtilsTest, ParseOfflineURLWithEntryURLTest) {
|
| GURL offline_url(
|
| "chrome://offline/MD5/page.html?entryURL=http%3A%2F%2Ffoo.bar%2F");
|
| GURL entry_url = reading_list::EntryURLForOfflineURL(offline_url);
|
| EXPECT_EQ("http://foo.bar/", entry_url.spec());
|
| GURL virtual_url = reading_list::VirtualURLForOfflineURL(offline_url);
|
| - EXPECT_EQ("http://foo.bar/", virtual_url.spec());
|
| + EXPECT_TRUE(virtual_url.is_empty());
|
| }
|
|
|
| // Checks the parsing of offline URL
|
| @@ -66,7 +62,7 @@ TEST(OfflineURLUtilsTest, ParseOfflineURLWithVirtualURLTest) {
|
| GURL offline_url(
|
| "chrome://offline/MD5/page.html?virtualURL=http%3A%2F%2Ffoo.bar%2F");
|
| GURL entry_url = reading_list::EntryURLForOfflineURL(offline_url);
|
| - EXPECT_EQ(offline_url, entry_url);
|
| + EXPECT_TRUE(entry_url.is_empty());
|
| GURL virtual_url = reading_list::VirtualURLForOfflineURL(offline_url);
|
| EXPECT_EQ("http://foo.bar/", virtual_url.spec());
|
| }
|
| @@ -125,3 +121,48 @@ TEST(OfflineURLUtilsTest, IsOfflineURL) {
|
| reading_list::IsOfflineURL(GURL("chrome://offline/foobar?foo=bar")));
|
| }
|
|
|
| +// Checks that the offline URLs are correctly detected by |IsOfflineURL|.
|
| +TEST(OfflineURLUtilsTest, IsOfflineURLValid) {
|
| + auto reading_list_model = base::MakeUnique<ReadingListModelImpl>(
|
| + nullptr, nullptr, base::MakeUnique<base::DefaultClock>());
|
| + GURL entry_url("http://entry_url.com");
|
| + base::FilePath distilled_path("distilled/page.html");
|
| + GURL distilled_url("http://distilled_url.com");
|
| + reading_list_model->AddEntry(entry_url, "title",
|
| + reading_list::ADDED_VIA_CURRENT_APP);
|
| + reading_list_model->SetEntryDistilledInfo(
|
| + entry_url, distilled_path, distilled_url, 10, base::Time::Now());
|
| +
|
| + EXPECT_FALSE(
|
| + reading_list::IsOfflineURLValid(GURL(), reading_list_model.get()));
|
| + EXPECT_FALSE(reading_list::IsOfflineURLValid(GURL("chrome://"),
|
| + reading_list_model.get()));
|
| + EXPECT_FALSE(reading_list::IsOfflineURLValid(GURL("chrome://offline-foobar"),
|
| + reading_list_model.get()));
|
| + EXPECT_FALSE(reading_list::IsOfflineURLValid(GURL("http://offline/"),
|
| + reading_list_model.get()));
|
| + EXPECT_FALSE(reading_list::IsOfflineURLValid(GURL("http://chrome://offline/"),
|
| + reading_list_model.get()));
|
| + EXPECT_FALSE(reading_list::IsOfflineURLValid(GURL("chrome://offline"),
|
| + reading_list_model.get()));
|
| + EXPECT_FALSE(reading_list::IsOfflineURLValid(GURL("chrome://offline/"),
|
| + reading_list_model.get()));
|
| + EXPECT_FALSE(reading_list::IsOfflineURLValid(GURL("chrome://offline/foobar"),
|
| + reading_list_model.get()));
|
| + EXPECT_FALSE(reading_list::IsOfflineURLValid(
|
| + GURL("chrome://offline/foobar?foo=bar"), reading_list_model.get()));
|
| + EXPECT_TRUE(reading_list::IsOfflineURLValid(
|
| + reading_list::OfflineURLForPath(distilled_path, entry_url, distilled_url),
|
| + reading_list_model.get()));
|
| + EXPECT_FALSE(reading_list::IsOfflineURLValid(
|
| + reading_list::OfflineURLForPath(distilled_path, entry_url, entry_url),
|
| + reading_list_model.get()));
|
| + EXPECT_FALSE(reading_list::IsOfflineURLValid(
|
| + reading_list::OfflineURLForPath(base::FilePath("not_distilled_path"),
|
| + entry_url, distilled_url),
|
| + reading_list_model.get()));
|
| + reading_list_model->RemoveEntryByURL(entry_url);
|
| + EXPECT_FALSE(reading_list::IsOfflineURLValid(
|
| + reading_list::OfflineURLForPath(distilled_path, entry_url, distilled_url),
|
| + reading_list_model.get()));
|
| +}
|
|
|