#include <memory>
#include <string>
#include <utility>
#include "base/strings/utf_string_conversions.h"
#include "base/test/metrics/histogram_tester.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/notifications/notification_display_service.h"
#include "chrome/browser/notifications/notification_display_service_tester.h"
#include "chrome/browser/notifications/system_notification_helper.h"
#include "chrome/browser/profiles/profile_manager.h"
#include "chrome/browser/ui/browser_list.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/browser/usb/web_usb_detector.h"
#include "chrome/test/base/browser_with_test_window_test.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile_manager.h"
#include "services/device/public/cpp/test/fake_usb_device_info.h"
#include "services/device/public/cpp/test/fake_usb_device_manager.h"
#include "services/device/public/mojom/usb_device.mojom.h"
#include "services/device/public/mojom/usb_manager.mojom.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "ui/message_center/public/cpp/notification.h"
#include "ui/message_center/public/cpp/notification_delegate.h"
#include "url/gurl.h"
#if !BUILDFLAG(IS_WIN)
namespace {
const char* kProductName_1 = …;
const char* kProductName_2 = …;
const char* kProductName_3 = …;
const char* kLandingPage_1 = …;
const char* kLandingPage_2 = …;
const char* kLandingPage_3 = …;
const char* kLandingPage_1_fuzzed = …;
}
class WebUsbDetectorTest : public BrowserWithTestWindowTest { … };
TEST_F(WebUsbDetectorTest, UsbDeviceAddedAndRemoved) { … }
TEST_F(WebUsbDetectorTest, UsbDeviceWithoutProductNameAddedAndRemoved) { … }
TEST_F(WebUsbDetectorTest, UsbDeviceWithoutLandingPageAddedAndRemoved) { … }
TEST_F(WebUsbDetectorTest, UsbDeviceWasThereBeforeAndThenRemoved) { … }
TEST_F(
WebUsbDetectorTest,
ThreeUsbDevicesWereThereBeforeAndThenRemovedBeforeWebUsbDetectorWasCreated) { … }
TEST_F(
WebUsbDetectorTest,
ThreeUsbDevicesWereThereBeforeAndThenRemovedAfterWebUsbDetectorWasCreated) { … }
TEST_F(WebUsbDetectorTest,
TwoUsbDevicesWereThereBeforeAndThenRemovedAndNewUsbDeviceAdded) { … }
TEST_F(WebUsbDetectorTest, ThreeUsbDevicesAddedAndRemoved) { … }
TEST_F(WebUsbDetectorTest, ThreeUsbDeviceAddedAndRemovedDifferentOrder) { … }
TEST_F(WebUsbDetectorTest, UsbDeviceAddedWhileActiveTabUrlIsLandingPage) { … }
TEST_F(WebUsbDetectorTest, UsbDeviceAddedBeforeActiveTabUrlIsLandingPage) { … }
TEST_F(WebUsbDetectorTest,
NotificationClickedWhileInactiveTabUrlIsLandingPage) { … }
TEST_F(WebUsbDetectorTest, NotificationClickedWhileNoTabUrlIsLandingPage) { … }
TEST_F(WebUsbDetectorTest, UsbDeviceAddedBeforeActiveTabFuzzyUrlIsLandingPage) { … }
TEST_F(WebUsbDetectorTest, UsbDeviceAddedWhileActiveTabFuzzyUrlIsLandingPage) { … }
TEST_F(WebUsbDetectorTest, TwoDevicesSameLandingPageAddedRemovedAndAddedAgain) { … }
TEST_F(
WebUsbDetectorTest,
DeviceWithSameLandingPageAddedAfterNotificationClickedAndThenNewTabActive) { … }
TEST_F(WebUsbDetectorTest,
NotificationClickedWhileInactiveTabFuzzyUrlIsLandingPage) { … }
TEST_F(WebUsbDetectorTest,
DeviceWithSameLandingPageAddedAfterPageVisitedAndNewTabActive) { … }
#endif