blob: 3bbc130dec3e40ee1764bd5b430d9f8624dcc2d3 [file] [log] [blame]
// Copyright 2014 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_MEDIA_TEST_LICENSE_SERVER_CONFIG_H_
#define CHROME_BROWSER_MEDIA_TEST_LICENSE_SERVER_CONFIG_H_
#include <string>
#include <vector>
#include "base/environment.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
namespace base {
class CommandLine;
}
// Class used to start a test license server.
class TestLicenseServerConfig {
public:
TestLicenseServerConfig() {}
TestLicenseServerConfig(const TestLicenseServerConfig&) = delete;
TestLicenseServerConfig& operator=(const TestLicenseServerConfig&) = delete;
virtual ~TestLicenseServerConfig() {}
// Returns a string containing the URL and port the server is listening to.
// This URL is directly used by the Web app to request a license, example:
// http://localhost:8888/license_server
virtual std::string GetServerURL() = 0;
// Returns true if it successfully sets the command line to run the license
// server with needed args and switches.
virtual bool GetServerCommandLine(base::CommandLine* command_line) = 0;
// Returns the environment map to apply to the server, or absl::nullopt on
// error.
virtual absl::optional<base::EnvironmentMap> GetServerEnvironment() = 0;
// Returns true if the server is supported on current platform.
virtual bool IsPlatformSupported() = 0;
};
#endif // CHROME_BROWSER_MEDIA_TEST_LICENSE_SERVER_CONFIG_H_