shown_sections_handler_unittest.cc revision dc0f95d653279beabeb9817299e2902918ba123e
1// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "chrome/browser/ui/webui/shown_sections_handler.h"
6
7#include "base/scoped_ptr.h"
8#include "chrome/browser/prefs/pref_value_store.h"
9#include "chrome/common/json_pref_store.h"
10#include "chrome/common/pref_names.h"
11#include "chrome/test/testing_pref_service.h"
12#include "testing/gtest/include/gtest/gtest.h"
13
14class ShownSectionsHandlerTest : public testing::Test {
15};
16
17namespace {
18
19int MigratePrefValue(PrefService* prefs, int starting_value) {
20  prefs->SetInteger(prefs::kNTPShownSections, starting_value);
21  ShownSectionsHandler::MigrateUserPrefs(prefs, 1, 3);
22  return prefs->GetInteger(prefs::kNTPShownSections);
23}
24
25}  // namespace
26
27TEST_F(ShownSectionsHandlerTest, MigrateUserPrefs) {
28  scoped_ptr<PrefService> pref(new TestingPrefService);
29
30  pref->RegisterIntegerPref(prefs::kNTPShownSections, 0);
31
32  EXPECT_EQ(APPS, MigratePrefValue(pref.get(), APPS));
33  EXPECT_EQ(THUMB, MigratePrefValue(pref.get(), THUMB));
34  EXPECT_EQ(APPS, MigratePrefValue(pref.get(), APPS | THUMB));
35
36  // 2 is not currently used, but older state may contain it and we should do
37  // something reasonable.
38  EXPECT_EQ(THUMB, MigratePrefValue(pref.get(), 3));
39
40  // 0 can't correspond to any section, but we should still do something
41  // reasonable.
42  EXPECT_EQ(THUMB, MigratePrefValue(pref.get(), 0));
43}
44