chromium/chrome/browser/new_tab_page/modules/new_tab_page_modules_interactive_uitest.cc

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include <utility>
#include <vector>

#include "base/strings/strcat.h"
#include "base/test/scoped_feature_list.h"
#include "chrome/browser/new_tab_page/modules/modules_switches.h"
#include "chrome/browser/new_tab_page/modules/test_support.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/test/interaction/interactive_browser_test.h"
#include "chrome/test/interaction/webcontents_interaction_test_util.h"
#include "components/search/ntp_features.h"
#include "content/public/test/browser_test.h"

namespace {

DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE();
DEFINE_LOCAL_CUSTOM_ELEMENT_EVENT_TYPE();
DEFINE_LOCAL_CUSTOM_ELEMENT_EVENT_TYPE();

const char kGooglePageUrl[] =;

DeepQuery;
const DeepQuery kModulesV2Container =;
const DeepQuery kModulesV2Wrapper =;

struct ModuleLink {};

struct ModuleDetails {};

ModuleDetails kMostRelevantTabResumptionModuleDetails =;

ModuleDetails kGoogleCalendarModuleDetails =;

std::vector<ModuleDetails> kAllModules =;

std::vector<std::pair<std::vector<base::test::FeatureRefAndParams>, ModuleLink>>
GetAllModuleLinks(std::vector<ModuleDetails> modules) {}

}  // namespace

class NewTabPageModulesInteractiveUiBaseTest : public InteractiveBrowserTest {};

class NewTabPageModulesInteractiveUiTest
    : public NewTabPageModulesInteractiveUiBaseTest,
      public testing::WithParamInterface<ModuleDetails> {};

INSTANTIATE_TEST_SUITE_P();

// TODO(crbug.com/335214502): Re-enable this test.
#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_MAC)
#define MAYBE_ClickingHideButtonDismissesModule
#else
#define MAYBE_ClickingHideButtonDismissesModule
#endif
IN_PROC_BROWSER_TEST_P(NewTabPageModulesInteractiveUiTest,
                       MAYBE_ClickingHideButtonDismissesModule) {}

// TODO(crbug.com/335214502): Flaky on ChromeOS Tests.
#if BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_CHROMEOS_LACROS)
#define MAYBE_ClickingDisableButtonDisablesModule
#else
#define MAYBE_ClickingDisableButtonDisablesModule
#endif
IN_PROC_BROWSER_TEST_P(NewTabPageModulesInteractiveUiTest,
                       MAYBE_ClickingDisableButtonDisablesModule) {}

class NewTabPageModulesInteractiveLinkUiTest
    : public NewTabPageModulesInteractiveUiBaseTest,
      public testing::WithParamInterface<
          std::pair<std::vector<base::test::FeatureRefAndParams>, ModuleLink>> {};

INSTANTIATE_TEST_SUITE_P();

// TODO(crbug.com/347914816): Fix test failure on Mac.
#if BUILDFLAG(IS_CHROMEOS_LACROS) || BUILDFLAG(IS_LINUX) || \
    BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_MAC)
#define MAYBE_ClickingEntryNavigatesToCorrectPage
#else
#define MAYBE_ClickingEntryNavigatesToCorrectPage
#endif
IN_PROC_BROWSER_TEST_P(NewTabPageModulesInteractiveLinkUiTest,
                       MAYBE_ClickingEntryNavigatesToCorrectPage) {}