Index: chrome/browser/policy/enterprise_install_attributes_unittest.cc |
diff --git a/chrome/browser/policy/enterprise_install_attributes_unittest.cc b/chrome/browser/policy/enterprise_install_attributes_unittest.cc |
index b22591492a6ed9bf40d3be73672c0c45ec0239c4..151029c45dfc9044b411dc5d371fa070e0bf7001 100644 |
--- a/chrome/browser/policy/enterprise_install_attributes_unittest.cc |
+++ b/chrome/browser/policy/enterprise_install_attributes_unittest.cc |
@@ -4,8 +4,11 @@ |
#include "chrome/browser/policy/enterprise_install_attributes.h" |
+#include "base/file_util.h" |
+#include "base/files/scoped_temp_dir.h" |
#include "base/memory/scoped_ptr.h" |
#include "chrome/browser/chromeos/cros/cryptohome_library.h" |
+#include "chrome/browser/policy/proto/install_attributes.pb.h" |
#include "testing/gtest/include/gtest/gtest.h" |
namespace policy { |
@@ -23,6 +26,25 @@ class EnterpriseInstallAttributesTest : public testing::Test { |
: cryptohome_(chromeos::CryptohomeLibrary::GetImpl(true)), |
install_attributes_(cryptohome_.get()) {} |
+ virtual void SetUp() OVERRIDE { |
+ ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
+ } |
+ |
+ FilePath GetTempPath() const { |
+ return temp_dir_.path().Append("install_attrs_test"); |
+ } |
+ |
+ void SetAttribute( |
+ cryptohome::SerializedInstallAttributes* install_attrs_proto, |
+ const std::string& name, |
+ const std::string& value) { |
+ cryptohome::SerializedInstallAttributes::Attribute* attribute; |
+ attribute = install_attrs_proto->add_attributes(); |
+ attribute->set_name(name); |
+ attribute->set_value(value); |
+ } |
+ |
+ base::ScopedTempDir temp_dir_; |
scoped_ptr<chromeos::CryptohomeLibrary> cryptohome_; |
EnterpriseInstallAttributes install_attributes_; |
}; |
@@ -54,6 +76,7 @@ TEST_F(EnterpriseInstallAttributesTest, Lock) { |
} |
TEST_F(EnterpriseInstallAttributesTest, IsEnterpriseDevice) { |
+ install_attributes_.ReadCacheFile(GetTempPath()); |
EXPECT_FALSE(install_attributes_.IsEnterpriseDevice()); |
ASSERT_EQ(EnterpriseInstallAttributes::LOCK_SUCCESS, |
install_attributes_.LockDevice( |
@@ -64,6 +87,7 @@ TEST_F(EnterpriseInstallAttributesTest, IsEnterpriseDevice) { |
} |
TEST_F(EnterpriseInstallAttributesTest, GetDomain) { |
+ install_attributes_.ReadCacheFile(GetTempPath()); |
EXPECT_EQ(std::string(), install_attributes_.GetDomain()); |
ASSERT_EQ(EnterpriseInstallAttributes::LOCK_SUCCESS, |
install_attributes_.LockDevice( |
@@ -74,6 +98,7 @@ TEST_F(EnterpriseInstallAttributesTest, GetDomain) { |
} |
TEST_F(EnterpriseInstallAttributesTest, GetRegistrationUser) { |
+ install_attributes_.ReadCacheFile(GetTempPath()); |
EXPECT_EQ(std::string(), install_attributes_.GetRegistrationUser()); |
ASSERT_EQ(EnterpriseInstallAttributes::LOCK_SUCCESS, |
install_attributes_.LockDevice( |
@@ -84,6 +109,7 @@ TEST_F(EnterpriseInstallAttributesTest, GetRegistrationUser) { |
} |
TEST_F(EnterpriseInstallAttributesTest, GetDeviceId) { |
+ install_attributes_.ReadCacheFile(GetTempPath()); |
EXPECT_EQ(std::string(), install_attributes_.GetDeviceId()); |
ASSERT_EQ(EnterpriseInstallAttributes::LOCK_SUCCESS, |
install_attributes_.LockDevice( |
@@ -94,8 +120,8 @@ TEST_F(EnterpriseInstallAttributesTest, GetDeviceId) { |
} |
TEST_F(EnterpriseInstallAttributesTest, GetMode) { |
- EXPECT_EQ(DEVICE_MODE_NOT_SET, |
- install_attributes_.GetMode()); |
+ install_attributes_.ReadCacheFile(GetTempPath()); |
+ EXPECT_EQ(DEVICE_MODE_PENDING, install_attributes_.GetMode()); |
ASSERT_EQ(EnterpriseInstallAttributes::LOCK_SUCCESS, |
install_attributes_.LockDevice( |
kTestUser, |
@@ -106,26 +132,40 @@ TEST_F(EnterpriseInstallAttributesTest, GetMode) { |
} |
TEST_F(EnterpriseInstallAttributesTest, ConsumerDevice) { |
- EXPECT_EQ(DEVICE_MODE_NOT_SET, |
- install_attributes_.GetMode()); |
+ install_attributes_.ReadCacheFile(GetTempPath()); |
+ EXPECT_EQ(DEVICE_MODE_PENDING, install_attributes_.GetMode()); |
// Lock the attributes empty. |
ASSERT_TRUE(cryptohome_->InstallAttributesFinalize()); |
+ install_attributes_.ReadImmutableAttributes(); |
ASSERT_FALSE(cryptohome_->InstallAttributesIsFirstInstall()); |
- EXPECT_EQ(DEVICE_MODE_CONSUMER, |
- install_attributes_.GetMode()); |
+ EXPECT_EQ(DEVICE_MODE_CONSUMER, install_attributes_.GetMode()); |
} |
TEST_F(EnterpriseInstallAttributesTest, DeviceLockedFromOlderVersion) { |
- EXPECT_EQ(DEVICE_MODE_NOT_SET, |
- install_attributes_.GetMode()); |
+ install_attributes_.ReadCacheFile(GetTempPath()); |
+ EXPECT_EQ(DEVICE_MODE_PENDING, install_attributes_.GetMode()); |
// Lock the attributes as if it was done from older Chrome version. |
ASSERT_TRUE(cryptohome_->InstallAttributesSet(kAttrEnterpriseOwned, "true")); |
ASSERT_TRUE(cryptohome_->InstallAttributesSet(kAttrEnterpriseUser, |
kTestUser)); |
ASSERT_TRUE(cryptohome_->InstallAttributesFinalize()); |
+ install_attributes_.ReadImmutableAttributes(); |
ASSERT_FALSE(cryptohome_->InstallAttributesIsFirstInstall()); |
- EXPECT_EQ(DEVICE_MODE_ENTERPRISE, |
- install_attributes_.GetMode()); |
+ EXPECT_EQ(DEVICE_MODE_ENTERPRISE, install_attributes_.GetMode()); |
+ EXPECT_EQ(kTestDomain, install_attributes_.GetDomain()); |
+ EXPECT_EQ(kTestUser, install_attributes_.GetRegistrationUser()); |
+ EXPECT_EQ("", install_attributes_.GetDeviceId()); |
+} |
+ |
+TEST_F(EnterpriseInstallAttributesTest, ReadCacheFile) { |
+ cryptohome::SerializedInstallAttributes install_attrs_proto; |
+ SetAttribute(&install_attrs_proto, kAttrEnterpriseOwned, "true"); |
+ SetAttribute(&install_attrs_proto, kAttrEnterpriseUser, kTestUser); |
+ const std::string blob(install_attrs_proto.SerializeAsString()); |
+ ASSERT_EQ(static_cast<int>(blob.size()), |
+ file_util::WriteFile(GetTempPath(), blob.c_str(), blob.size())); |
+ install_attributes_.ReadCacheFile(GetTempPath()); |
+ EXPECT_EQ(DEVICE_MODE_ENTERPRISE, install_attributes_.GetMode()); |
EXPECT_EQ(kTestDomain, install_attributes_.GetDomain()); |
EXPECT_EQ(kTestUser, install_attributes_.GetRegistrationUser()); |
EXPECT_EQ("", install_attributes_.GetDeviceId()); |