File: browser_actions_unittest.cc

package info (click to toggle)
chromium 138.0.7204.157-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,864 kB
  • sloc: cpp: 34,936,859; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,967; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (70 lines) | stat: -rw-r--r-- 2,892 bytes parent folder | download | duplicates (4)
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
67
68
69
70
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/ui/browser_actions.h"

#include "base/test/scoped_feature_list.h"
#include "chrome/browser/ui/actions/chrome_action_id.h"
#include "chrome/browser/ui/browser_commands.h"
#include "chrome/test/base/browser_with_test_window_test.h"

using BrowserActionsTest = BrowserWithTestWindowTest;

TEST_F(BrowserActionsTest, DidCreateBrowserActions) {
  BrowserActions* browser_actions = browser()->browser_actions();
  auto& action_manager = actions::ActionManager::GetForTesting();

  std::vector<actions::ActionId> browser_action_ids = {
      kActionNewIncognitoWindow, kActionPrint,
      kActionClearBrowsingData,  kActionTaskManager,
      kActionDevTools,           kActionSendTabToSelf,
      kActionQrCodeGenerator,    kActionShowAddressesBubbleOrPage};

  ASSERT_NE(browser_actions->root_action_item(), nullptr);

  for (actions::ActionId action_id : browser_action_ids) {
    EXPECT_NE(action_manager.FindAction(action_id), nullptr);
  }
}

TEST_F(BrowserActionsTest, CheckBrowserActionsEnabledState) {
  BrowserActions* browser_actions = browser()->browser_actions();
  auto& action_manager = actions::ActionManager::GetForTesting();

  ASSERT_NE(browser_actions->root_action_item(), nullptr);

  EXPECT_EQ(action_manager.FindAction(kActionNewIncognitoWindow)->GetEnabled(),
            true);
  EXPECT_EQ(action_manager.FindAction(kActionClearBrowsingData)->GetEnabled(),
            true);
  EXPECT_EQ(action_manager.FindAction(kActionTaskManager)->GetEnabled(), true);
  EXPECT_EQ(action_manager.FindAction(kActionDevTools)->GetEnabled(), true);
  EXPECT_EQ(action_manager.FindAction(kActionPrint)->GetEnabled(),
            chrome::CanPrint(browser()));
  EXPECT_EQ(action_manager.FindAction(kActionSendTabToSelf)->GetEnabled(),
            chrome::CanSendTabToSelf(browser()));
  EXPECT_EQ(action_manager.FindAction(kActionQrCodeGenerator)->GetEnabled(),
            false);
  EXPECT_EQ(
      action_manager.FindAction(kActionShowAddressesBubbleOrPage)->GetEnabled(),
      true);
}

TEST_F(BrowserActionsTest, GetCleanTitleAndTooltipText) {
  // \u2026 is the unicode hex value for a horizontal ellipsis.
  const std::u16string expected = u"Print";
  std::u16string input = u"&Print\u2026";
  std::u16string output = BrowserActions::GetCleanTitleAndTooltipText(input);
  EXPECT_EQ(output, expected);

  std::u16string input_middle_amp = u"Pri&nt\u2026";
  std::u16string output_middle_amp =
      BrowserActions::GetCleanTitleAndTooltipText(input_middle_amp);
  EXPECT_EQ(output_middle_amp, expected);

  std::u16string input_ellipsis_text = u"&Print...";
  std::u16string output_ellipsis_text =
      BrowserActions::GetCleanTitleAndTooltipText(input_ellipsis_text);
  EXPECT_EQ(output_ellipsis_text, expected);
}