Index: omaha_request_params_unittest.cc |
diff --git a/omaha_request_params_unittest.cc b/omaha_request_params_unittest.cc |
index 200b23b4abb672551fc8fc3ca6266a3be5cd4365..07615a235f7fea356c1c8974b6df9c50a18cfa30 100644 |
--- a/omaha_request_params_unittest.cc |
+++ b/omaha_request_params_unittest.cc |
@@ -15,20 +15,34 @@ using std::string; |
namespace chromeos_update_engine { |
class OmahaRequestDeviceParamsTest : public ::testing::Test { |
- public: |
+ protected: |
// Return true iff the OmahaRequestDeviceParams::Init succeeded. If |
// out is non-NULL, it's set w/ the generated data. |
- bool DoTest(OmahaRequestParams* out); |
+ bool DoTest(OmahaRequestParams* out, const string& app_version, |
+ const string& omaha_url); |
+ |
+ virtual void SetUp() { |
+ ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + "/etc")); |
+ ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + |
+ utils::kStatefulPartition + "/etc")); |
+ } |
+ |
+ virtual void TearDown() { |
+ EXPECT_EQ(0, System(string("rm -rf ") + kTestDir)); |
+ } |
+ |
static const string kTestDir; |
}; |
const string OmahaRequestDeviceParamsTest::kTestDir = |
"omaha_request_device_params-test"; |
-bool OmahaRequestDeviceParamsTest::DoTest(OmahaRequestParams* out) { |
+bool OmahaRequestDeviceParamsTest::DoTest(OmahaRequestParams* out, |
+ const string& app_version, |
+ const string& omaha_url) { |
OmahaRequestDeviceParams params; |
params.set_root(string("./") + kTestDir); |
- bool success = params.Init(); |
+ bool success = params.Init(app_version, omaha_url); |
if (out) |
*out = params; |
return success; |
@@ -77,94 +91,75 @@ string GetMachineType() { |
} // namespace {} |
TEST_F(OmahaRequestDeviceParamsTest, SimpleTest) { |
- ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + "/etc")); |
- ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + |
- utils::kStatefulPartition + "/etc")); |
- { |
- ASSERT_TRUE(WriteFileString( |
- kTestDir + "/etc/lsb-release", |
- "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
- "CHROMEOS_RELEASE_FOO=bar\n" |
- "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
- "CHROMEOS_RELEASE_TRACK=footrack")); |
- OmahaRequestParams out; |
- EXPECT_TRUE(DoTest(&out)); |
- EXPECT_TRUE(IsValidGuid(out.machine_id)) << "id: " << out.machine_id; |
- // for now we're just using the machine id here |
- EXPECT_TRUE(IsValidGuid(out.user_id)) << "id: " << out.user_id; |
- EXPECT_EQ("Chrome OS", out.os_platform); |
- EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); |
- EXPECT_EQ("arm-generic", out.os_board); |
- EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
- EXPECT_EQ("0.2.2.3", out.app_version); |
- EXPECT_EQ("en-US", out.app_lang); |
- EXPECT_TRUE(out.delta_okay); |
- EXPECT_EQ("footrack", out.app_track); |
- } |
- EXPECT_EQ(0, System(string("rm -rf ") + kTestDir)); |
+ ASSERT_TRUE(WriteFileString( |
+ kTestDir + "/etc/lsb-release", |
+ "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
+ "CHROMEOS_RELEASE_FOO=bar\n" |
+ "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
+ "CHROMEOS_RELEASE_TRACK=footrack\n" |
+ "CHROMEOS_AUSERVER=http://www.google.com")); |
+ OmahaRequestParams out; |
+ EXPECT_TRUE(DoTest(&out, "", "")); |
+ EXPECT_TRUE(IsValidGuid(out.machine_id)) << "id: " << out.machine_id; |
+ // for now we're just using the machine id here |
+ EXPECT_TRUE(IsValidGuid(out.user_id)) << "id: " << out.user_id; |
+ EXPECT_EQ("Chrome OS", out.os_platform); |
+ EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); |
+ EXPECT_EQ("arm-generic", out.os_board); |
+ EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
+ EXPECT_EQ("0.2.2.3", out.app_version); |
+ EXPECT_EQ("en-US", out.app_lang); |
+ EXPECT_TRUE(out.delta_okay); |
+ EXPECT_EQ("footrack", out.app_track); |
+ EXPECT_EQ("http://www.google.com", out.update_url); |
} |
TEST_F(OmahaRequestDeviceParamsTest, MissingTrackTest) { |
- ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + "/etc")); |
- ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + |
- utils::kStatefulPartition + "/etc")); |
- { |
- ASSERT_TRUE(WriteFileString( |
- kTestDir + "/etc/lsb-release", |
- "CHROMEOS_RELEASE_FOO=bar\n" |
- "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
- "CHROMEOS_RELEASE_TRXCK=footrack")); |
- OmahaRequestParams out; |
- EXPECT_TRUE(DoTest(&out)); |
- EXPECT_TRUE(IsValidGuid(out.machine_id)); |
- // for now we're just using the machine id here |
- EXPECT_TRUE(IsValidGuid(out.user_id)); |
- EXPECT_EQ("Chrome OS", out.os_platform); |
- EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); |
- EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
- EXPECT_EQ("0.2.2.3", out.app_version); |
- EXPECT_EQ("en-US", out.app_lang); |
- EXPECT_EQ("", out.app_track); |
- } |
- EXPECT_EQ(0, System(string("rm -rf ") + kTestDir)); |
+ ASSERT_TRUE(WriteFileString( |
+ kTestDir + "/etc/lsb-release", |
+ "CHROMEOS_RELEASE_FOO=bar\n" |
+ "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
+ "CHROMEOS_RELEASE_TRXCK=footrack")); |
+ OmahaRequestParams out; |
+ EXPECT_TRUE(DoTest(&out, "", "")); |
+ EXPECT_TRUE(IsValidGuid(out.machine_id)); |
+ // for now we're just using the machine id here |
+ EXPECT_TRUE(IsValidGuid(out.user_id)); |
+ EXPECT_EQ("Chrome OS", out.os_platform); |
+ EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); |
+ EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
+ EXPECT_EQ("0.2.2.3", out.app_version); |
+ EXPECT_EQ("en-US", out.app_lang); |
+ EXPECT_EQ("", out.app_track); |
} |
TEST_F(OmahaRequestDeviceParamsTest, ConfusingReleaseTest) { |
- ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + "/etc")); |
- ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + |
- utils::kStatefulPartition + "/etc")); |
- { |
- ASSERT_TRUE(WriteFileString( |
- kTestDir + "/etc/lsb-release", |
- "CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n" |
- "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
- "CHROMEOS_RELEASE_TRXCK=footrack")); |
- OmahaRequestParams out; |
- EXPECT_TRUE(DoTest(&out)); |
- EXPECT_TRUE(IsValidGuid(out.machine_id)) << out.machine_id; |
- // for now we're just using the machine id here |
- EXPECT_TRUE(IsValidGuid(out.user_id)); |
- EXPECT_EQ("Chrome OS", out.os_platform); |
- EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); |
- EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
- EXPECT_EQ("0.2.2.3", out.app_version); |
- EXPECT_EQ("en-US", out.app_lang); |
- EXPECT_EQ("", out.app_track); |
- } |
- EXPECT_EQ(0, System(string("rm -rf ") + kTestDir)); |
+ ASSERT_TRUE(WriteFileString( |
+ kTestDir + "/etc/lsb-release", |
+ "CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n" |
+ "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
+ "CHROMEOS_RELEASE_TRXCK=footrack")); |
+ OmahaRequestParams out; |
+ EXPECT_TRUE(DoTest(&out, "", "")); |
+ EXPECT_TRUE(IsValidGuid(out.machine_id)) << out.machine_id; |
+ // for now we're just using the machine id here |
+ EXPECT_TRUE(IsValidGuid(out.user_id)); |
+ EXPECT_EQ("Chrome OS", out.os_platform); |
+ EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); |
+ EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
+ EXPECT_EQ("0.2.2.3", out.app_version); |
+ EXPECT_EQ("en-US", out.app_lang); |
+ EXPECT_EQ("", out.app_track); |
} |
TEST_F(OmahaRequestDeviceParamsTest, MachineIdPersistsTest) { |
- ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + "/etc")); |
- ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + |
- utils::kStatefulPartition + "/etc")); |
ASSERT_TRUE(WriteFileString( |
kTestDir + "/etc/lsb-release", |
"CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n" |
"CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
"CHROMEOS_RELEASE_TRXCK=footrack")); |
OmahaRequestParams out1; |
- EXPECT_TRUE(DoTest(&out1)); |
+ EXPECT_TRUE(DoTest(&out1, "", "")); |
string machine_id; |
EXPECT_TRUE(utils::ReadFileToString( |
kTestDir + |
@@ -172,15 +167,99 @@ TEST_F(OmahaRequestDeviceParamsTest, MachineIdPersistsTest) { |
&machine_id)); |
EXPECT_EQ(machine_id, out1.machine_id); |
OmahaRequestParams out2; |
- EXPECT_TRUE(DoTest(&out2)); |
+ EXPECT_TRUE(DoTest(&out2, "", "")); |
EXPECT_EQ(machine_id, out2.machine_id); |
- EXPECT_EQ(0, System(string("rm -rf ") + kTestDir)); |
+} |
+ |
+TEST_F(OmahaRequestDeviceParamsTest, MissingVersionTest) { |
+ ASSERT_TRUE(WriteFileString( |
+ kTestDir + "/etc/lsb-release", |
+ "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
+ "CHROMEOS_RELEASE_FOO=bar\n" |
+ "CHROMEOS_RELEASE_TRACK=footrack")); |
+ OmahaRequestParams out; |
+ EXPECT_TRUE(DoTest(&out, "", "")); |
+ EXPECT_TRUE(IsValidGuid(out.machine_id)) << "id: " << out.machine_id; |
+ // for now we're just using the machine id here |
+ EXPECT_TRUE(IsValidGuid(out.user_id)) << "id: " << out.user_id; |
+ EXPECT_EQ("Chrome OS", out.os_platform); |
+ EXPECT_EQ(string("_") + GetMachineType(), out.os_sp); |
+ EXPECT_EQ("arm-generic", out.os_board); |
+ EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
+ EXPECT_EQ("", out.app_version); |
+ EXPECT_EQ("en-US", out.app_lang); |
+ EXPECT_TRUE(out.delta_okay); |
+ EXPECT_EQ("footrack", out.app_track); |
+} |
+ |
+TEST_F(OmahaRequestDeviceParamsTest, ForceVersionTest) { |
+ ASSERT_TRUE(WriteFileString( |
+ kTestDir + "/etc/lsb-release", |
+ "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
+ "CHROMEOS_RELEASE_FOO=bar\n" |
+ "CHROMEOS_RELEASE_TRACK=footrack")); |
+ OmahaRequestParams out; |
+ EXPECT_TRUE(DoTest(&out, "ForcedVersion", "")); |
+ EXPECT_TRUE(IsValidGuid(out.machine_id)) << "id: " << out.machine_id; |
+ // for now we're just using the machine id here |
+ EXPECT_TRUE(IsValidGuid(out.user_id)) << "id: " << out.user_id; |
+ EXPECT_EQ("Chrome OS", out.os_platform); |
+ EXPECT_EQ(string("ForcedVersion_") + GetMachineType(), out.os_sp); |
+ EXPECT_EQ("arm-generic", out.os_board); |
+ EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
+ EXPECT_EQ("ForcedVersion", out.app_version); |
+ EXPECT_EQ("en-US", out.app_lang); |
+ EXPECT_TRUE(out.delta_okay); |
+ EXPECT_EQ("footrack", out.app_track); |
+} |
+ |
+TEST_F(OmahaRequestDeviceParamsTest, ForcedURLTest) { |
+ ASSERT_TRUE(WriteFileString( |
+ kTestDir + "/etc/lsb-release", |
+ "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
+ "CHROMEOS_RELEASE_FOO=bar\n" |
+ "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
+ "CHROMEOS_RELEASE_TRACK=footrack")); |
+ OmahaRequestParams out; |
+ EXPECT_TRUE(DoTest(&out, "", "http://forced.google.com")); |
+ EXPECT_TRUE(IsValidGuid(out.machine_id)) << "id: " << out.machine_id; |
+ // for now we're just using the machine id here |
+ EXPECT_TRUE(IsValidGuid(out.user_id)) << "id: " << out.user_id; |
+ EXPECT_EQ("Chrome OS", out.os_platform); |
+ EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); |
+ EXPECT_EQ("arm-generic", out.os_board); |
+ EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
+ EXPECT_EQ("0.2.2.3", out.app_version); |
+ EXPECT_EQ("en-US", out.app_lang); |
+ EXPECT_TRUE(out.delta_okay); |
+ EXPECT_EQ("footrack", out.app_track); |
+ EXPECT_EQ("http://forced.google.com", out.update_url); |
+} |
+ |
+TEST_F(OmahaRequestDeviceParamsTest, MissingURLTest) { |
+ ASSERT_TRUE(WriteFileString( |
+ kTestDir + "/etc/lsb-release", |
+ "CHROMEOS_RELEASE_BOARD=arm-generic\n" |
+ "CHROMEOS_RELEASE_FOO=bar\n" |
+ "CHROMEOS_RELEASE_VERSION=0.2.2.3\n" |
+ "CHROMEOS_RELEASE_TRACK=footrack")); |
+ OmahaRequestParams out; |
+ EXPECT_TRUE(DoTest(&out, "", "")); |
+ EXPECT_TRUE(IsValidGuid(out.machine_id)) << "id: " << out.machine_id; |
+ // for now we're just using the machine id here |
+ EXPECT_TRUE(IsValidGuid(out.user_id)) << "id: " << out.user_id; |
+ EXPECT_EQ("Chrome OS", out.os_platform); |
+ EXPECT_EQ(string("0.2.2.3_") + GetMachineType(), out.os_sp); |
+ EXPECT_EQ("arm-generic", out.os_board); |
+ EXPECT_EQ("{87efface-864d-49a5-9bb3-4b050a7c227a}", out.app_id); |
+ EXPECT_EQ("0.2.2.3", out.app_version); |
+ EXPECT_EQ("en-US", out.app_lang); |
+ EXPECT_TRUE(out.delta_okay); |
+ EXPECT_EQ("footrack", out.app_track); |
+ EXPECT_EQ(OmahaRequestParams::kUpdateUrl, out.update_url); |
} |
TEST_F(OmahaRequestDeviceParamsTest, NoDeltasTest) { |
- ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + "/etc")); |
- ASSERT_EQ(0, System(string("mkdir -p ") + kTestDir + |
- utils::kStatefulPartition + "/etc")); |
ASSERT_TRUE(WriteFileString( |
kTestDir + "/etc/lsb-release", |
"CHROMEOS_RELEASE_FOO=CHROMEOS_RELEASE_VERSION=1.2.3.4\n" |
@@ -188,9 +267,8 @@ TEST_F(OmahaRequestDeviceParamsTest, NoDeltasTest) { |
"CHROMEOS_RELEASE_TRXCK=footrack")); |
ASSERT_TRUE(WriteFileString(kTestDir + "/.nodelta", "")); |
OmahaRequestParams out; |
- EXPECT_TRUE(DoTest(&out)); |
+ EXPECT_TRUE(DoTest(&out, "", "")); |
EXPECT_FALSE(out.delta_okay); |
- EXPECT_EQ(0, System(string("rm -rf ") + kTestDir)); |
} |
} // namespace chromeos_update_engine |