diff --git a/chrome/chrome_tests.gypi b/chrome/chrome_tests.gypi index f51b851c5a69b1..2abc7762f42e8c 100644 --- a/chrome/chrome_tests.gypi +++ b/chrome/chrome_tests.gypi @@ -2009,6 +2009,7 @@ 'service/cloud_print/cloud_print_token_store_unittest.cc', 'service/cloud_print/cloud_print_url_fetcher_unittest.cc', 'service/service_process_unittest.cc', + 'service/service_process_prefs_unittest.cc', 'test/base/browser_with_test_window_test.cc', 'test/base/browser_with_test_window_test.h', 'test/base/chrome_render_view_test.cc', diff --git a/chrome/service/service_process_prefs_unittest.cc b/chrome/service/service_process_prefs_unittest.cc new file mode 100644 index 00000000000000..67ac5da5607dc9 --- /dev/null +++ b/chrome/service/service_process_prefs_unittest.cc @@ -0,0 +1,50 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include + +#include "base/message_loop.h" +#include "base/message_loop_proxy.h" +#include "base/scoped_temp_dir.h" +#include "chrome/service/service_process_prefs.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +class ServiceProcessPrefsTest : public testing::Test { + protected: + virtual void SetUp() { + message_loop_proxy_ = base::MessageLoopProxy::current(); + + ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); + + prefs_.reset(new ServiceProcessPrefs( + temp_dir_.path().AppendASCII("service_process_prefs.txt"), + message_loop_proxy_.get())); + } + + // The path to temporary directory used to contain the test operations. + ScopedTempDir temp_dir_; + // A message loop that we can use as the file thread message loop. + MessageLoop message_loop_; + scoped_refptr message_loop_proxy_; + scoped_ptr prefs_; +}; + +// Test ability to retrieve prefs +TEST_F(ServiceProcessPrefsTest, RetrievePrefs) { + prefs_->SetBoolean("testb", true); + prefs_->SetString("tests", "testvalue"); + prefs_->WritePrefs(); + MessageLoop::current()->RunAllPending(); + prefs_->SetBoolean("testb", false); // overwrite + prefs_->SetString("tests", ""); // overwrite + prefs_->ReadPrefs(); + bool testb; + prefs_->GetBoolean("testb", &testb); + EXPECT_EQ(testb, true); + std::string tests; + prefs_->GetString("tests", &tests); + EXPECT_EQ(tests, "testvalue"); +} +