#include <memory>
#include <string>
#include "base/path_service.h"
#include "base/strings/utf_string_conversions.h"
#include "base/test/bind.h"
#include "base/time/time.h"
#include "base/version.h"
#include "build/branding_buildflags.h"
#include "build/build_config.h"
#include "build/chromeos_buildflags.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/profiles/profile_attributes_init_params.h"
#include "chrome/browser/profiles/profile_attributes_storage.h"
#include "chrome/common/channel_info.h"
#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile_manager.h"
#include "components/account_id/account_id.h"
#include "components/enterprise/browser/reporting/browser_report_generator.h"
#include "components/enterprise/browser/reporting/report_util.h"
#include "content/public/test/browser_task_environment.h"
#include "device_management_backend.pb.h"
#include "testing/gtest/include/gtest/gtest.h"
#if !BUILDFLAG(IS_ANDROID)
#include "chrome/browser/upgrade_detector/build_state.h"
#endif
#if BUILDFLAG(IS_CHROMEOS_ASH)
#include "chromeos/ash/components/browser_context_helper/browser_context_types.h"
#endif
#if BUILDFLAG(GOOGLE_CHROME_BRANDING) && !BUILDFLAG(IS_CHROMEOS_ASH)
#include "chrome/test/base/scoped_channel_override.h"
#endif
#if BUILDFLAG(IS_ANDROID)
#include "chrome/browser/enterprise/reporting/reporting_delegate_factory_android.h"
#else
#include "chrome/browser/enterprise/reporting/reporting_delegate_factory_desktop.h"
#endif
em;
namespace enterprise_reporting {
namespace {
const char kProfileId[] = …;
const char kProfileName[] = …;
const char16_t kProfileName16[] = …;
void VerifyBrowserVersionAndChannel(em::BrowserReport* report,
bool with_version_info) { … }
void VerifyBuildState(em::BrowserReport* report, bool with_version_info) { … }
void VerifyExtendedStableChannel(em::BrowserReport* report) { … }
void VerifyProfile(em::BrowserReport* report) { … }
}
#if BUILDFLAG(IS_ANDROID)
typedef ReportingDelegateFactoryAndroid PlatformReportingDelegateFactory;
#else
PlatformReportingDelegateFactory;
#endif
class BrowserReportGeneratorTest : public ::testing::Test { … };
TEST_F(BrowserReportGeneratorTest, GenerateBasicReport) { … }
TEST_F(BrowserReportGeneratorTest, GenerateBasicReportForProfileReporting) { … }
#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH)
TEST_F(BrowserReportGeneratorTest, GenerateBasicReportWithUpdate) { … }
#endif
#if !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_CHROMEOS_ASH) && \
BUILDFLAG(GOOGLE_CHROME_BRANDING)
TEST_F(BrowserReportGeneratorTest, ExtendedStableChannel) {
chrome::ScopedChannelOverride channel_override(
chrome::ScopedChannelOverride::Channel::kExtendedStable);
ASSERT_TRUE(chrome::IsExtendedStableChannel());
InitializeProfile();
InitializeIrregularProfiles();
GenerateAndVerify();
}
#endif
}