| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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/installable/installable_manager.h" | 5 #include "chrome/browser/installable/installable_manager.h" |
| 6 | 6 |
| 7 #include "base/strings/utf_string_conversions.h" | 7 #include "base/strings/utf_string_conversions.h" |
| 8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
| 9 #include "third_party/WebKit/public/platform/WebDisplayMode.h" | 9 #include "third_party/WebKit/public/platform/WebDisplayMode.h" |
| 10 | 10 |
| 11 using IconPurpose = content::Manifest::Icon::IconPurpose; | 11 using IconPurpose = content::Manifest::Icon::IconPurpose; |
| 12 | 12 |
| 13 class InstallableManagerUnitTest : public testing::Test { | 13 class InstallableManagerUnitTest : public testing::Test { |
| 14 public: | 14 public: |
| 15 InstallableManagerUnitTest() : manager_(new InstallableManager(nullptr)) { } | 15 InstallableManagerUnitTest() |
| 16 : manager_(base::MakeUnique<InstallableManager>(nullptr)) {} |
| 16 | 17 |
| 17 protected: | 18 protected: |
| 18 static base::NullableString16 ToNullableUTF16(const std::string& str) { | 19 static base::NullableString16 ToNullableUTF16(const std::string& str) { |
| 19 return base::NullableString16(base::UTF8ToUTF16(str), false); | 20 return base::NullableString16(base::UTF8ToUTF16(str), false); |
| 20 } | 21 } |
| 21 | 22 |
| 22 static content::Manifest GetValidManifest() { | 23 static content::Manifest GetValidManifest() { |
| 23 content::Manifest manifest; | 24 content::Manifest manifest; |
| 24 manifest.name = ToNullableUTF16("foo"); | 25 manifest.name = ToNullableUTF16("foo"); |
| 25 manifest.short_name = ToNullableUTF16("bar"); | 26 manifest.short_name = ToNullableUTF16("bar"); |
| 26 manifest.start_url = GURL("http://example.com"); | 27 manifest.start_url = GURL("http://example.com"); |
| 27 manifest.display = blink::kWebDisplayModeStandalone; | 28 manifest.display = blink::kWebDisplayModeStandalone; |
| 28 | 29 |
| 29 content::Manifest::Icon primary_icon; | 30 content::Manifest::Icon primary_icon; |
| 30 primary_icon.type = base::ASCIIToUTF16("image/png"); | 31 primary_icon.type = base::ASCIIToUTF16("image/png"); |
| 31 primary_icon.sizes.push_back(gfx::Size(144, 144)); | 32 primary_icon.sizes.push_back(gfx::Size(144, 144)); |
| 32 primary_icon.purpose.push_back(IconPurpose::ANY); | 33 primary_icon.purpose.push_back(IconPurpose::ANY); |
| 33 manifest.icons.push_back(primary_icon); | 34 manifest.icons.push_back(primary_icon); |
| 34 | 35 |
| 35 // No need to include the optional badge icon as it does not affect the | 36 // No need to include the optional badge icon as it does not affect the |
| 36 // unit tests. | 37 // unit tests. |
| 37 return manifest; | 38 return manifest; |
| 38 } | 39 } |
| 39 | 40 |
| 40 bool IsManifestValid(const content::Manifest& manifest) { | 41 bool IsManifestValid(const content::Manifest& manifest) { |
| 41 // Explicitly reset the error code before running the method. | 42 // Explicitly reset the error code before running the method. |
| 42 manager_->set_installable_error(NO_ERROR_DETECTED); | 43 manager_->set_valid_manifest_error(NO_ERROR_DETECTED); |
| 43 return manager_->IsManifestValidForWebApp(manifest); | 44 return manager_->IsManifestValidForWebApp(manifest); |
| 44 } | 45 } |
| 45 | 46 |
| 46 InstallableStatusCode GetErrorCode() { | 47 InstallableStatusCode GetErrorCode() { |
| 47 return manager_->installable_error(); | 48 return manager_->valid_manifest_error(); |
| 48 } | 49 } |
| 49 | 50 |
| 50 private: | 51 private: |
| 51 std::unique_ptr<InstallableManager> manager_; | 52 std::unique_ptr<InstallableManager> manager_; |
| 52 }; | 53 }; |
| 53 | 54 |
| 54 TEST_F(InstallableManagerUnitTest, EmptyManifestIsInvalid) { | 55 TEST_F(InstallableManagerUnitTest, EmptyManifestIsInvalid) { |
| 55 content::Manifest manifest; | 56 content::Manifest manifest; |
| 56 EXPECT_FALSE(IsManifestValid(manifest)); | 57 EXPECT_FALSE(IsManifestValid(manifest)); |
| 57 EXPECT_EQ(MANIFEST_EMPTY, GetErrorCode()); | 58 EXPECT_EQ(MANIFEST_EMPTY, GetErrorCode()); |
| (...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 EXPECT_EQ(MANIFEST_DISPLAY_NOT_SUPPORTED, GetErrorCode()); | 200 EXPECT_EQ(MANIFEST_DISPLAY_NOT_SUPPORTED, GetErrorCode()); |
| 200 | 201 |
| 201 manifest.display = blink::kWebDisplayModeStandalone; | 202 manifest.display = blink::kWebDisplayModeStandalone; |
| 202 EXPECT_TRUE(IsManifestValid(manifest)); | 203 EXPECT_TRUE(IsManifestValid(manifest)); |
| 203 EXPECT_EQ(NO_ERROR_DETECTED, GetErrorCode()); | 204 EXPECT_EQ(NO_ERROR_DETECTED, GetErrorCode()); |
| 204 | 205 |
| 205 manifest.display = blink::kWebDisplayModeFullscreen; | 206 manifest.display = blink::kWebDisplayModeFullscreen; |
| 206 EXPECT_TRUE(IsManifestValid(manifest)); | 207 EXPECT_TRUE(IsManifestValid(manifest)); |
| 207 EXPECT_EQ(NO_ERROR_DETECTED, GetErrorCode()); | 208 EXPECT_EQ(NO_ERROR_DETECTED, GetErrorCode()); |
| 208 } | 209 } |
| OLD | NEW |