1dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file. 4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 5dc0f95d653279beabeb9817299e2902918ba123eKristian Monsen#include "chrome/browser/ui/webui/shown_sections_handler.h" 6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/scoped_ptr.h" 83345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#include "chrome/browser/prefs/pref_value_store.h" 9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/common/json_pref_store.h" 10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/common/pref_names.h" 11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "chrome/test/testing_pref_service.h" 12c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "testing/gtest/include/gtest/gtest.h" 13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass ShownSectionsHandlerTest : public testing::Test { 15c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}; 16c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 173345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merricknamespace { 18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 193345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrickint MigratePrefValue(PrefService* prefs, int starting_value) { 203345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick prefs->SetInteger(prefs::kNTPShownSections, starting_value); 213345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick ShownSectionsHandler::MigrateUserPrefs(prefs, 1, 3); 223345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick return prefs->GetInteger(prefs::kNTPShownSections); 233345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick} 24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 2521d179b334e59e9a3bfcaed4c4430bef1bc5759dKristian Monsen} // namespace 26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 273345a6884c488ff3a535c2c9acdd33d74b37e311Iain MerrickTEST_F(ShownSectionsHandlerTest, MigrateUserPrefs) { 28c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch scoped_ptr<PrefService> pref(new TestingPrefService); 29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch pref->RegisterIntegerPref(prefs::kNTPShownSections, 0); 31c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 323345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(APPS, MigratePrefValue(pref.get(), APPS)); 333345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(THUMB, MigratePrefValue(pref.get(), THUMB)); 343345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(APPS, MigratePrefValue(pref.get(), APPS | THUMB)); 35c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 363345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick // 2 is not currently used, but older state may contain it and we should do 373345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick // something reasonable. 383345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(THUMB, MigratePrefValue(pref.get(), 3)); 39c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch 403345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick // 0 can't correspond to any section, but we should still do something 413345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick // reasonable. 423345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick EXPECT_EQ(THUMB, MigratePrefValue(pref.get(), 0)); 43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch} 44