summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/api/extension_action/extension_action_prefs_unittest.cc
blob: d307196511cb3b0d689ca8fbb452c99be829aa5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Copyright (c) 2013 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 <string>

#include "base/logging.h"
#include "base/macros.h"
#include "base/strings/string_number_conversions.h"
#include "base/strings/stringprintf.h"
#include "chrome/browser/extensions/api/extension_action/extension_action_api.h"
#include "chrome/browser/extensions/extension_prefs_unittest.h"
#include "chrome/test/base/testing_profile.h"
#include "extensions/common/extension.h"

namespace extensions {

// Tests force hiding browser actions.
class ExtensionPrefsHidingBrowserActions : public ExtensionPrefsTest {
 public:
  ExtensionPrefsHidingBrowserActions() {}
  ~ExtensionPrefsHidingBrowserActions() override {}

  void Initialize() override {
    profile_.reset(new TestingProfile());

    // Install 5 extensions.
    for (int i = 0; i < 5; i++) {
      std::string name = "test" + base::IntToString(i);
      extensions_.push_back(prefs_.AddExtension(name));
    }

    ExtensionActionAPI* action_api = ExtensionActionAPI::Get(profile_.get());
    action_api->set_prefs_for_testing(prefs());
    for (const scoped_refptr<const Extension>& extension : extensions_)
      EXPECT_TRUE(action_api->GetBrowserActionVisibility(extension->id()));

    action_api->SetBrowserActionVisibility(extensions_[0]->id(), false);
    action_api->SetBrowserActionVisibility(extensions_[1]->id(), true);
  }

  void Verify() override {
    ExtensionActionAPI* action_api = ExtensionActionAPI::Get(profile_.get());
    action_api->set_prefs_for_testing(prefs());
    // Make sure the one we hid is hidden.
    EXPECT_FALSE(action_api->GetBrowserActionVisibility(extensions_[0]->id()));

    // Make sure the other id's are not hidden.
    ExtensionList::const_iterator iter = extensions_.begin() + 1;
    for (; iter != extensions_.end(); ++iter) {
      SCOPED_TRACE(base::StringPrintf("Loop %d ",
                       static_cast<int>(iter - extensions_.begin())));
      EXPECT_TRUE(action_api->GetBrowserActionVisibility((*iter)->id()));
    }
  }

 private:
  scoped_ptr<TestingProfile> profile_;
  ExtensionList extensions_;

  DISALLOW_COPY_AND_ASSIGN(ExtensionPrefsHidingBrowserActions);
};

TEST_F(ExtensionPrefsHidingBrowserActions, ForceHide) {}

}  // namespace extensions