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