1 // Copyright 2019 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_CHROMEOS_LOGIN_TEST_EMBEDDED_TEST_SERVER_MIXIN_H_
6 #define CHROME_BROWSER_CHROMEOS_LOGIN_TEST_EMBEDDED_TEST_SERVER_MIXIN_H_
7 
8 #include "chrome/test/base/mixin_based_in_process_browser_test.h"
9 #include "net/test/embedded_test_server/embedded_test_server.h"
10 
11 namespace chromeos {
12 
13 // An InProcessBrowserTestMixin that sets up an embedded test server
14 // to serve data from test data directory.
15 class EmbeddedTestServerSetupMixin : public InProcessBrowserTestMixin {
16  public:
17   EmbeddedTestServerSetupMixin(InProcessBrowserTestMixinHost* host,
18                                net::EmbeddedTestServer* server);
19   ~EmbeddedTestServerSetupMixin() override;
20 
21   // InProcessBrowserTestMixin:
22   void SetUp() override;
23   void TearDownOnMainThread() override;
24   void SetUpOnMainThread() override;
25 
26  private:
27   // Path to directory served by embedded test server.
28   base::FilePath test_data_dir_;
29 
30   // Embedded test server owned by test that uses this mixin.
31   net::EmbeddedTestServer* embedded_test_server_;
32 
33   DISALLOW_COPY_AND_ASSIGN(EmbeddedTestServerSetupMixin);
34 };
35 
36 }  // namespace chromeos
37 
38 #endif  // CHROME_BROWSER_CHROMEOS_LOGIN_TEST_EMBEDDED_TEST_SERVER_MIXIN_H_
39