Index: chrome/browser/download/download_dir_policy_handler_unittest.cc |
diff --git a/chrome/browser/download/download_dir_policy_handler_unittest.cc b/chrome/browser/download/download_dir_policy_handler_unittest.cc |
index 49e6ae2531ab1b96ced126797d820fd31105e576..3e22cfbfb598c04c2710982a3b3a766d935c756a 100644 |
--- a/chrome/browser/download/download_dir_policy_handler_unittest.cc |
+++ b/chrome/browser/download/download_dir_policy_handler_unittest.cc |
@@ -7,10 +7,16 @@ |
#include "chrome/browser/download/download_prefs.h" |
#include "chrome/browser/policy/configuration_policy_pref_store_test.h" |
#include "chrome/common/pref_names.h" |
+#include "chrome/test/base/scoped_testing_local_state.h" |
#include "components/policy/core/browser/configuration_policy_pref_store.h" |
#include "components/policy/core/common/policy_map.h" |
#include "policy/policy_constants.h" |
+#if defined(OS_CHROMEOS) |
+#include "chrome/browser/chromeos/login/fake_user_manager.h" |
+#include "chrome/browser/chromeos/login/user.h" |
+#endif |
+ |
class DownloadDirPolicyHandlerTest |
: public policy::ConfigurationPolicyPrefStoreTest { |
public: |
@@ -19,6 +25,24 @@ class DownloadDirPolicyHandlerTest |
make_scoped_ptr<policy::ConfigurationPolicyHandler>( |
new DownloadDirPolicyHandler)); |
} |
+ |
+ bool GetBooleanFromStore(const std::string& key) { |
bartfab (slow)
2014/03/13 13:20:00
Nit: #include <string>
|
+ const base::Value* value = NULL; |
+ bool return_flag; |
bartfab (slow)
2014/03/13 13:20:00
Nit: How about "boolean_value" instead?
|
+ EXPECT_TRUE(store_->GetValue(key, &value)); |
+ EXPECT_TRUE(value != NULL); |
bartfab (slow)
2014/03/13 13:20:00
Nit: No need for "!= NULL". EXPECT_TRUE(value) is
|
+ EXPECT_TRUE(value->GetAsBoolean(&return_flag)); |
+ return return_flag; |
+ } |
+ |
+ bool StringValueEquals(const std::string& key, const std::string& expected) { |
bartfab (slow)
2014/03/13 13:20:00
Nit 1: Better implement a GetStringFromStore() and
|
+ const base::Value* value = NULL; |
+ std::string string_value; |
+ EXPECT_TRUE(store_->GetValue(key, &value)); |
+ EXPECT_TRUE(value != NULL); |
bartfab (slow)
2014/03/13 13:20:00
Nit: No need for "!= NULL". EXPECT_TRUE(value) is
|
+ EXPECT_TRUE(value->GetAsString(&string_value)); |
+ return string_value.compare(expected) == 0; |
bartfab (slow)
2014/03/13 13:20:00
Nit: std::string provides an operator==(), so you
|
+ } |
}; |
TEST_F(DownloadDirPolicyHandlerTest, SetDownloadDirectory) { |
@@ -40,3 +64,37 @@ TEST_F(DownloadDirPolicyHandlerTest, SetDownloadDirectory) { |
ASSERT_TRUE(result); |
EXPECT_FALSE(prompt_for_download); |
} |
+ |
+#if 0 // defined(OS_CHROMEOS) |
kinaba
2014/03/13 03:56:50
could this test be enabled?
|
+TEST_F(DownloadDirPolicyHandlerTest, SetDownloadToDrive) { |
+ const char* kDriveNamePolicyVarName = "${drive_name}"; |
+ |
+ policy::PolicyMap policy; |
+ EXPECT_FALSE(store_->GetValue(prefs::kPromptForDownload, NULL)); |
+ policy.Set(policy::key::kDownloadDirectory, |
+ policy::POLICY_LEVEL_MANDATORY, |
bartfab (slow)
2014/03/13 13:20:00
Now that the policy supports both mandatory and re
|
+ policy::POLICY_SCOPE_MACHINE, |
bartfab (slow)
2014/03/13 13:20:00
I see no reason to test this with machine and user
|
+ base::Value::CreateStringValue(kDriveNamePolicyVarName), |
bartfab (slow)
2014/03/13 13:20:00
Nit: CreateStringValue() is deprecated. Use "new b
|
+ NULL); |
+ UpdateProviderPolicy(policy); |
+ |
+ EXPECT_FALSE(GetBooleanFromStore(prefs::kPromptForDownload)); |
+ EXPECT_TRUE(StringValueEquals(prefs::kDownloadDefaultDirectory, "")); |
+ |
+ policy.Set(policy::key::kDownloadDirectory, |
+ policy::POLICY_LEVEL_MANDATORY, |
+ policy::POLICY_SCOPE_USER, |
+ base::Value::CreateStringValue(kDriveNamePolicyVarName), |
+ NULL); |
+ UpdateProviderPolicy(policy); |
+ |
+ EXPECT_TRUE(GetBooleanFromStore(prefs::kPromptForDownload)); |
+ EXPECT_TRUE(StringValueEquals(prefs::kDownloadDefaultDirectory, "")); |
+ |
+ chromeos::FakeUserManager* user_manager = new chromeos::FakeUserManager(); |
+ chromeos::ScopedUserManagerEnabler user_manager_enabler(user_manager); |
bartfab (slow)
2014/03/13 13:20:00
Nit: #include "chrome/browser/chromeos/login/user_
|
+ const char test_user_email[] = "test_user@example.com"; |
bartfab (slow)
2014/03/13 13:20:00
Nit 1: s/email/user_id/
Nit 2: Place constants in
|
+ user_manager->AddUser(test_user_email); |
+ user_manager->LoginUser(test_user_email); |
+} |
bartfab (slow)
2014/03/13 13:20:00
This test looks incomplete. It logs in as a test u
|
+#endif |