#ifndef CHROME_BROWSER_ASH_APP_MODE_FAKE_CWS_MIXIN_H_
#define CHROME_BROWSER_ASH_APP_MODE_FAKE_CWS_MIXIN_H_
#include <optional>
#include "base/auto_reset.h"
#include "base/command_line.h"
#include "chrome/browser/app_mode/test/fake_origin_test_server_mixin.h"
#include "chrome/browser/ash/app_mode/fake_cws.h"
#include "chrome/test/base/mixin_based_in_process_browser_test.h"
#include "url/gurl.h"
namespace ash {
class FakeCwsMixin : InProcessBrowserTestMixin {
public:
enum CwsInstanceType {
kPublic,
kPrivate
};
FakeCwsMixin(InProcessBrowserTestMixinHost* host,
CwsInstanceType instance_type);
FakeCwsMixin(const FakeCwsMixin&) = delete;
FakeCwsMixin& operator=(const FakeCwsMixin&) = delete;
~FakeCwsMixin() override;
FakeCWS& fake_cws() { return fake_cws_; }
GURL UpdateUrl() const;
void SetUpCommandLine(base::CommandLine* command_line) override;
void SetUpOnMainThread() override;
private:
CwsInstanceType instance_type_;
std::optional<base::AutoReset<bool>> disable_crx_publisher_verification_;
FakeOriginTestServerMixin fake_origin_mixin_;
FakeCWS fake_cws_;
};
}
#endif