| Index: chrome/installer/setup/install_unittest.cc
|
| diff --git a/chrome/installer/setup/install_unittest.cc b/chrome/installer/setup/install_unittest.cc
|
| index 8b4716209ec3fd593b4593815e2a47db0ee808d5..c26980a69eb0f92676a6fcc96de57b5b42d6deca 100644
|
| --- a/chrome/installer/setup/install_unittest.cc
|
| +++ b/chrome/installer/setup/install_unittest.cc
|
| @@ -9,6 +9,7 @@
|
|
|
| #include <memory>
|
| #include <string>
|
| +#include <tuple>
|
|
|
| #include "base/base_paths.h"
|
| #include "base/files/file_path.h"
|
| @@ -21,6 +22,8 @@
|
| #include "base/test/test_shortcut_win.h"
|
| #include "base/version.h"
|
| #include "base/win/shortcut.h"
|
| +#include "chrome/install_static/install_modes.h"
|
| +#include "chrome/install_static/test/scoped_install_details.h"
|
| #include "chrome/installer/setup/install_worker.h"
|
| #include "chrome/installer/setup/installer_state.h"
|
| #include "chrome/installer/setup/setup_constants.h"
|
| @@ -35,14 +38,24 @@
|
|
|
| namespace {
|
|
|
| -class CreateVisualElementsManifestTest : public testing::Test {
|
| +// A parameterized test harness for testing
|
| +// installer::CreateVisualElementsManifest. The parameters are:
|
| +// 0: an index into a brand's install_static::kInstallModes array.
|
| +// 1: the expected manifest.
|
| +class CreateVisualElementsManifestTest
|
| + : public ::testing::TestWithParam<
|
| + std::tuple<install_static::InstallConstantIndex, const char*>> {
|
| protected:
|
| + CreateVisualElementsManifestTest()
|
| + : scoped_install_details_(false /* !system_level */,
|
| + std::get<0>(GetParam())),
|
| + expected_manifest_(std::get<1>(GetParam())),
|
| + version_("0.0.0.0") {}
|
| +
|
| void SetUp() override {
|
| // Create a temp directory for testing.
|
| ASSERT_TRUE(test_dir_.CreateUniqueTempDir());
|
|
|
| - version_ = base::Version("0.0.0.0");
|
| -
|
| version_dir_ = test_dir_.GetPath().AppendASCII(version_.GetString());
|
| ASSERT_TRUE(base::CreateDirectory(version_dir_));
|
|
|
| @@ -55,19 +68,69 @@ class CreateVisualElementsManifestTest : public testing::Test {
|
| ASSERT_TRUE(test_dir_.Delete());
|
| }
|
|
|
| - // The temporary directory used to contain the test operations.
|
| - base::ScopedTempDir test_dir_;
|
| + // InstallDetails for this test run.
|
| + install_static::ScopedInstallDetails scoped_install_details_;
|
| +
|
| + // The expected contents of the manifest.
|
| + const char* const expected_manifest_;
|
|
|
| // A dummy version number used to create the version directory.
|
| - base::Version version_;
|
| + const base::Version version_;
|
| +
|
| + // The temporary directory used to contain the test operations.
|
| + base::ScopedTempDir test_dir_;
|
|
|
| // The path to |test_dir_|\|version_|.
|
| base::FilePath version_dir_;
|
|
|
| // The path to VisualElementsManifest.xml.
|
| base::FilePath manifest_path_;
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(CreateVisualElementsManifestTest);
|
| };
|
|
|
| +constexpr char kExpectedPrimaryManifest[] =
|
| + "<Application xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>\r\n"
|
| + " <VisualElements\r\n"
|
| + " ShowNameOnSquare150x150Logo='on'\r\n"
|
| + " Square150x150Logo='0.0.0.0\\VisualElements\\Logo.png'\r\n"
|
| + " Square70x70Logo='0.0.0.0\\VisualElements\\SmallLogo.png'\r\n"
|
| + " Square44x44Logo='0.0.0.0\\VisualElements\\SmallLogo.png'\r\n"
|
| + " ForegroundText='light'\r\n"
|
| + " BackgroundColor='#212121'/>\r\n"
|
| + "</Application>\r\n";
|
| +
|
| +#if defined(GOOGLE_CHROME_BUILD)
|
| +constexpr char kExpectedCanaryManifest[] =
|
| + "<Application xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>\r\n"
|
| + " <VisualElements\r\n"
|
| + " ShowNameOnSquare150x150Logo='on'\r\n"
|
| + " Square150x150Logo='0.0.0.0\\VisualElements\\LogoCanary.png'\r\n"
|
| + " Square70x70Logo='0.0.0.0\\VisualElements\\SmallLogoCanary.png'\r\n"
|
| + " Square44x44Logo='0.0.0.0\\VisualElements\\SmallLogoCanary.png'\r\n"
|
| + " ForegroundText='light'\r\n"
|
| + " BackgroundColor='#212121'/>\r\n"
|
| + "</Application>\r\n";
|
| +
|
| +INSTANTIATE_TEST_CASE_P(
|
| + GoogleChrome,
|
| + CreateVisualElementsManifestTest,
|
| + testing::Combine(testing::Values(install_static::STABLE_INDEX),
|
| + testing::Values(kExpectedPrimaryManifest)));
|
| +INSTANTIATE_TEST_CASE_P(
|
| + CanaryChrome,
|
| + CreateVisualElementsManifestTest,
|
| + testing::Combine(testing::Values(install_static::CANARY_INDEX),
|
| + testing::Values(kExpectedCanaryManifest)));
|
| +#else
|
| +INSTANTIATE_TEST_CASE_P(
|
| + Chromium,
|
| + CreateVisualElementsManifestTest,
|
| + testing::Combine(testing::Values(install_static::CHROMIUM_INDEX),
|
| + testing::Values(kExpectedPrimaryManifest)));
|
| +#endif
|
| +
|
| class InstallShortcutTest : public testing::Test {
|
| protected:
|
| void SetUp() override {
|
| @@ -202,7 +265,7 @@ class InstallShortcutTest : public testing::Test {
|
|
|
| // Test that VisualElementsManifest.xml is not created when VisualElements are
|
| // not present.
|
| -TEST_F(CreateVisualElementsManifestTest, VisualElementsManifestNotCreated) {
|
| +TEST_P(CreateVisualElementsManifestTest, VisualElementsManifestNotCreated) {
|
| ASSERT_TRUE(
|
| installer::CreateVisualElementsManifest(test_dir_.GetPath(), version_));
|
| ASSERT_FALSE(base::PathExists(manifest_path_));
|
| @@ -210,7 +273,7 @@ TEST_F(CreateVisualElementsManifestTest, VisualElementsManifestNotCreated) {
|
|
|
| // Test that VisualElementsManifest.xml is created with the correct content when
|
| // VisualElements are present.
|
| -TEST_F(CreateVisualElementsManifestTest, VisualElementsManifestCreated) {
|
| +TEST_P(CreateVisualElementsManifestTest, VisualElementsManifestCreated) {
|
| ASSERT_TRUE(base::CreateDirectory(
|
| version_dir_.Append(installer::kVisualElements)));
|
| ASSERT_TRUE(
|
| @@ -220,18 +283,7 @@ TEST_F(CreateVisualElementsManifestTest, VisualElementsManifestCreated) {
|
| std::string read_manifest;
|
| ASSERT_TRUE(base::ReadFileToString(manifest_path_, &read_manifest));
|
|
|
| - static const char kExpectedManifest[] =
|
| - "<Application xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>\r\n"
|
| - " <VisualElements\r\n"
|
| - " ShowNameOnSquare150x150Logo='on'\r\n"
|
| - " Square150x150Logo='0.0.0.0\\VisualElements\\Logo.png'\r\n"
|
| - " Square70x70Logo='0.0.0.0\\VisualElements\\SmallLogo.png'\r\n"
|
| - " Square44x44Logo='0.0.0.0\\VisualElements\\SmallLogo.png'\r\n"
|
| - " ForegroundText='light'\r\n"
|
| - " BackgroundColor='#212121'/>\r\n"
|
| - "</Application>\r\n";
|
| -
|
| - ASSERT_STREQ(kExpectedManifest, read_manifest.c_str());
|
| + ASSERT_STREQ(expected_manifest_, read_manifest.c_str());
|
| }
|
|
|
| TEST_F(InstallShortcutTest, CreateAllShortcuts) {
|
|
|