| Index: ios/chrome/browser/ui/tools_menu/tools_menu_view_controller_unittest.mm
|
| diff --git a/ios/chrome/browser/ui/tools_menu/tools_menu_view_controller_unittest.mm b/ios/chrome/browser/ui/tools_menu/tools_menu_view_controller_unittest.mm
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3e2e9a1aa39ce9827482be284569d7b48cb261db
|
| --- /dev/null
|
| +++ b/ios/chrome/browser/ui/tools_menu/tools_menu_view_controller_unittest.mm
|
| @@ -0,0 +1,87 @@
|
| +// Copyright 2016 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.
|
| +
|
| +#import "ios/chrome/browser/ui/tools_menu/tools_menu_view_controller.h"
|
| +
|
| +#import "base/mac/scoped_nsobject.h"
|
| +#include "ios/chrome/browser/ui/commands/ios_command_ids.h"
|
| +#import "ios/chrome/browser/ui/tools_menu/tools_menu_configuration.h"
|
| +#import "ios/chrome/browser/ui/tools_menu/tools_menu_view_item.h"
|
| +#include "ios/web/public/user_agent.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +#include "testing/platform_test.h"
|
| +
|
| +class ToolsMenuViewControllerTest : public PlatformTest {
|
| + protected:
|
| + void SetUp() override {
|
| + PlatformTest::SetUp();
|
| + configuration_.reset(
|
| + [[ToolsMenuConfiguration alloc] initWithDisplayView:nil]);
|
| + controller_.reset([[ToolsMenuViewController alloc] init]);
|
| + }
|
| +
|
| + // Returns tools menu view item by IDC value, null if not exit.
|
| + ToolsMenuViewItem* GetToolsMenuViewItemWithTag(int tag) {
|
| + for (ToolsMenuViewItem* item in [controller_ menuItems]) {
|
| + if ([item tag] == tag)
|
| + return item;
|
| + }
|
| +
|
| + return nullptr;
|
| + }
|
| +
|
| + base::scoped_nsobject<ToolsMenuConfiguration> configuration_;
|
| + base::scoped_nsobject<ToolsMenuViewController> controller_;
|
| +};
|
| +
|
| +// Tests that "Request Desktop Site" is visible and enabled, and
|
| +// "Request Mobile Site" is invisible when the current page is a native page,
|
| +// whose user agent type is NONE.
|
| +TEST_F(ToolsMenuViewControllerTest, TestUserAgentTypeNONE) {
|
| + [configuration_ setUserAgentType:web::UserAgentType::NONE];
|
| + [controller_ initializeMenuWithConfiguration:configuration_.get()];
|
| +
|
| + ToolsMenuViewItem* desktop_item =
|
| + GetToolsMenuViewItemWithTag(IDC_REQUEST_DESKTOP_SITE);
|
| + ASSERT_TRUE(desktop_item);
|
| + EXPECT_FALSE(desktop_item.active);
|
| +
|
| + ToolsMenuViewItem* mobile_item =
|
| + GetToolsMenuViewItemWithTag(IDC_REQUEST_MOBILE_SITE);
|
| + EXPECT_FALSE(mobile_item);
|
| +}
|
| +
|
| +// Tests that "Request Desktop Site" is visible and not enabled, and
|
| +// "Request Mobile Site" is invisible when the current page is a web page and
|
| +// uses MOBILE user agent.
|
| +TEST_F(ToolsMenuViewControllerTest, TestUserAgentTypeMOBILE) {
|
| + [configuration_ setUserAgentType:web::UserAgentType::MOBILE];
|
| + [controller_ initializeMenuWithConfiguration:configuration_.get()];
|
| +
|
| + ToolsMenuViewItem* desktop_item =
|
| + GetToolsMenuViewItemWithTag(IDC_REQUEST_DESKTOP_SITE);
|
| + ASSERT_TRUE(desktop_item);
|
| + EXPECT_TRUE(desktop_item.active);
|
| +
|
| + ToolsMenuViewItem* mobile_item =
|
| + GetToolsMenuViewItemWithTag(IDC_REQUEST_MOBILE_SITE);
|
| + EXPECT_FALSE(mobile_item);
|
| +}
|
| +
|
| +// Tests that "Request Desktop Site" is visible and not enabled, and
|
| +// "Request Mobile Site" is invisible when the current page is a web page and
|
| +// uses DESKTOP user agent.
|
| +TEST_F(ToolsMenuViewControllerTest, TestUserAgentTypeDESKTOP) {
|
| + [configuration_ setUserAgentType:web::UserAgentType::DESKTOP];
|
| + [controller_ initializeMenuWithConfiguration:configuration_.get()];
|
| +
|
| + ToolsMenuViewItem* desktop_item =
|
| + GetToolsMenuViewItemWithTag(IDC_REQUEST_DESKTOP_SITE);
|
| + ASSERT_TRUE(desktop_item);
|
| + EXPECT_FALSE(desktop_item.active);
|
| +
|
| + ToolsMenuViewItem* mobile_item =
|
| + GetToolsMenuViewItemWithTag(IDC_REQUEST_MOBILE_SITE);
|
| + EXPECT_FALSE(mobile_item);
|
| +}
|
|
|