Commit e0f255f9 authored by Travis Skare's avatar Travis Skare Committed by Commit Bot

[QRCode Generator] Add unittest for IsGeneratorAvailable

Also enables qrcode_generator_bubble_unittest for ChromeOS;
it was stuck in a no-{Android,CrOS} block.

Bug: 1110446
Change-Id: Iba92df1293d979a10a66c7e90e1f0eb0651888a4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2324807Reviewed-by: default avatarKyle Milka <kmilka@chromium.org>
Commit-Queue: Travis Skare <skare@chromium.org>
Cr-Commit-Position: refs/heads/master@{#792467}
parent 0158dc1e
// Copyright 2020 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 "chrome/browser/ui/qrcode_generator/qrcode_generator_bubble_controller.h"
#include "base/test/scoped_feature_list.h"
#include "chrome/browser/sharing/features.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
namespace qrcode_generator {
class QRCodeGeneratorBubbleControllerTest : public testing::Test {
public:
QRCodeGeneratorBubbleControllerTest() = default;
~QRCodeGeneratorBubbleControllerTest() override = default;
protected:
base::test::ScopedFeatureList scoped_feature_list_;
private:
DISALLOW_COPY_AND_ASSIGN(QRCodeGeneratorBubbleControllerTest);
};
TEST_F(QRCodeGeneratorBubbleControllerTest, AllowedURLs) {
scoped_feature_list_.InitAndEnableFeature(kSharingQRCodeGenerator);
// Allow valid http/https URLs.
ASSERT_TRUE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("http://www.example.com"), false));
ASSERT_TRUE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("https://www.example.com"), false));
ASSERT_TRUE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("https://www.example.com/path?q=abc"), false));
// Disallow those URLs in incognito.
ASSERT_FALSE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("http://www.example.com"), true));
ASSERT_FALSE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("https://www.example.com"), true));
ASSERT_FALSE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("https://www.example.com/path?q=abc"), true));
// Disallow browser-ui URLs.
ASSERT_FALSE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("about:blank"), false));
ASSERT_FALSE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("chrome://newtab"), false));
ASSERT_FALSE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("chrome://settings"), false));
// Disallow invalid URLs.
ASSERT_FALSE(
QRCodeGeneratorBubbleController::IsGeneratorAvailable(GURL(""), false));
ASSERT_FALSE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("NotAURL"), false));
}
TEST_F(QRCodeGeneratorBubbleControllerTest, UnavailableWithFeatureOff) {
scoped_feature_list_.InitAndDisableFeature(kSharingQRCodeGenerator);
// Normally-available URLs should not be allowed when the feature is off.
ASSERT_FALSE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("http://www.example.com"), false));
ASSERT_FALSE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("https://www.example.com"), false));
ASSERT_FALSE(QRCodeGeneratorBubbleController::IsGeneratorAvailable(
GURL("https://www.example.com/path?q=abc"), false));
}
} // namespace qrcode_generator
...@@ -4277,6 +4277,7 @@ test("unit_tests") { ...@@ -4277,6 +4277,7 @@ test("unit_tests") {
"../browser/ui/passwords/bubble_controllers/sign_in_promo_bubble_controller_unittest.cc", "../browser/ui/passwords/bubble_controllers/sign_in_promo_bubble_controller_unittest.cc",
"../browser/ui/passwords/credential_leak_dialog_controller_impl_unittest.cc", "../browser/ui/passwords/credential_leak_dialog_controller_impl_unittest.cc",
"../browser/ui/passwords/credential_manager_dialog_controller_impl_unittest.cc", "../browser/ui/passwords/credential_manager_dialog_controller_impl_unittest.cc",
"../browser/ui/qrcode_generator/qrcode_generator_bubble_controller_unittest.cc",
"../browser/ui/recently_audible_helper_unittest.cc", "../browser/ui/recently_audible_helper_unittest.cc",
"../browser/ui/search/ntp_user_data_logger_unittest.cc", "../browser/ui/search/ntp_user_data_logger_unittest.cc",
"../browser/ui/search/omnibox_mojo_utils_unittest.cc", "../browser/ui/search/omnibox_mojo_utils_unittest.cc",
...@@ -5482,7 +5483,6 @@ test("unit_tests") { ...@@ -5482,7 +5483,6 @@ test("unit_tests") {
"../browser/signin/signin_global_error_unittest.cc", "../browser/signin/signin_global_error_unittest.cc",
"../browser/signin/signin_ui_util_unittest.cc", "../browser/signin/signin_ui_util_unittest.cc",
"../browser/signin/signin_util_unittest.cc", "../browser/signin/signin_util_unittest.cc",
"../browser/ui/views/qrcode_generator/qrcode_generator_bubble_unittest.cc",
"../browser/ui/views/sharing/sharing_dialog_view_unittest.cc", "../browser/ui/views/sharing/sharing_dialog_view_unittest.cc",
"../browser/ui/webui/signin/signin_create_profile_handler_unittest.cc", "../browser/ui/webui/signin/signin_create_profile_handler_unittest.cc",
"../browser/ui/webui/signin/signin_error_handler_unittest.cc", "../browser/ui/webui/signin/signin_error_handler_unittest.cc",
...@@ -5567,6 +5567,7 @@ test("unit_tests") { ...@@ -5567,6 +5567,7 @@ test("unit_tests") {
"../browser/ui/views/payments/view_stack_unittest.cc", "../browser/ui/views/payments/view_stack_unittest.cc",
"../browser/ui/views/permission_bubble/permission_prompt_bubble_view_unittest.cc", "../browser/ui/views/permission_bubble/permission_prompt_bubble_view_unittest.cc",
"../browser/ui/views/profiles/avatar_toolbar_button_unittest.cc", "../browser/ui/views/profiles/avatar_toolbar_button_unittest.cc",
"../browser/ui/views/qrcode_generator/qrcode_generator_bubble_unittest.cc",
"../browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc", "../browser/ui/views/relaunch_notification/relaunch_notification_controller_unittest.cc",
"../browser/ui/views/relaunch_notification/relaunch_required_timer_internal_unittest.cc", "../browser/ui/views/relaunch_notification/relaunch_required_timer_internal_unittest.cc",
"../browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl_unittest.cc", "../browser/ui/views/send_tab_to_self/send_tab_to_self_bubble_view_impl_unittest.cc",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment