Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10428)

Unified Diff: chrome/installer/setup/install_unittest.cc

Issue 2459583002: Use InstallDetails in setup. (Closed)
Patch Set: another doc comment Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/installer/setup/install.cc ('k') | chrome/installer/setup/install_worker.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) {
« no previous file with comments | « chrome/installer/setup/install.cc ('k') | chrome/installer/setup/install_worker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698