Fix --web-header
flag for flutter drive
(#159039)
<!-- Thanks for filing a pull request! Reviewers are typically assigned within a week of filing a request. To learn more about code review, see our documentation on Tree Hygiene: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md --> This PR makes sure that `--web-header` flag works together with the `flutter drive` command. Currently the flag is correctly parsed but it is not properly propagated and ends up being unused when running the web server for tests. I have validated the fix by following the steps to reproduce from: https://github.com/flutter/flutter/issues/159037. #### Before the fix No custom HTTP header in test run:  #### After the fix Correct HTTP headers in test run:  Fixes #159037 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
This commit is contained in:
parent
d7f5547ecd
commit
728cedc62a
@ -78,6 +78,7 @@ class WebDriverService extends DriverService {
|
|||||||
hostname: debuggingOptions.hostname,
|
hostname: debuggingOptions.hostname,
|
||||||
webRenderer: debuggingOptions.webRenderer,
|
webRenderer: debuggingOptions.webRenderer,
|
||||||
webUseWasm: debuggingOptions.webUseWasm,
|
webUseWasm: debuggingOptions.webUseWasm,
|
||||||
|
webHeaders: debuggingOptions.webHeaders,
|
||||||
)
|
)
|
||||||
: DebuggingOptions.enabled(
|
: DebuggingOptions.enabled(
|
||||||
buildInfo,
|
buildInfo,
|
||||||
@ -86,6 +87,7 @@ class WebDriverService extends DriverService {
|
|||||||
disablePortPublication: debuggingOptions.disablePortPublication,
|
disablePortPublication: debuggingOptions.disablePortPublication,
|
||||||
webRenderer: debuggingOptions.webRenderer,
|
webRenderer: debuggingOptions.webRenderer,
|
||||||
webUseWasm: debuggingOptions.webUseWasm,
|
webUseWasm: debuggingOptions.webUseWasm,
|
||||||
|
webHeaders: debuggingOptions.webHeaders,
|
||||||
),
|
),
|
||||||
stayResident: true,
|
stayResident: true,
|
||||||
flutterProject: FlutterProject.current(),
|
flutterProject: FlutterProject.current(),
|
||||||
|
@ -270,6 +270,17 @@ void main() {
|
|||||||
WebRunnerFactory: () => FakeWebRunnerFactory(),
|
WebRunnerFactory: () => FakeWebRunnerFactory(),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
testUsingContext('WebDriverService starts an app with provided web headers', () async {
|
||||||
|
final WebDriverService service = setUpDriverService();
|
||||||
|
final FakeDevice device = FakeDevice();
|
||||||
|
final Map<String, String> webHeaders = <String, String>{'test-header': 'test-value'};
|
||||||
|
await service.start(BuildInfo.profile, device, DebuggingOptions.enabled(BuildInfo.profile, webHeaders: webHeaders, ipv6: true));
|
||||||
|
await service.stop();
|
||||||
|
expect(FakeResidentRunner.instance.debuggingOptions.webHeaders, equals(webHeaders));
|
||||||
|
}, overrides: <Type, Generator>{
|
||||||
|
WebRunnerFactory: () => FakeWebRunnerFactory(),
|
||||||
|
});
|
||||||
|
|
||||||
testUsingContext('WebDriverService will throw when an invalid launch url is provided', () async {
|
testUsingContext('WebDriverService will throw when an invalid launch url is provided', () async {
|
||||||
final WebDriverService service = setUpDriverService();
|
final WebDriverService service = setUpDriverService();
|
||||||
final FakeDevice device = FakeDevice();
|
final FakeDevice device = FakeDevice();
|
||||||
@ -310,7 +321,7 @@ class FakeWebRunnerFactory implements WebRunnerFactory {
|
|||||||
bool? stayResident,
|
bool? stayResident,
|
||||||
FlutterProject? flutterProject,
|
FlutterProject? flutterProject,
|
||||||
bool? ipv6,
|
bool? ipv6,
|
||||||
DebuggingOptions? debuggingOptions,
|
required DebuggingOptions debuggingOptions,
|
||||||
UrlTunneller? urlTunneller,
|
UrlTunneller? urlTunneller,
|
||||||
Logger? logger,
|
Logger? logger,
|
||||||
FileSystem? fileSystem,
|
FileSystem? fileSystem,
|
||||||
@ -322,6 +333,7 @@ class FakeWebRunnerFactory implements WebRunnerFactory {
|
|||||||
expect(stayResident, isTrue);
|
expect(stayResident, isTrue);
|
||||||
return FakeResidentRunner(
|
return FakeResidentRunner(
|
||||||
doResolveToError: doResolveToError,
|
doResolveToError: doResolveToError,
|
||||||
|
debuggingOptions: debuggingOptions,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -329,6 +341,7 @@ class FakeWebRunnerFactory implements WebRunnerFactory {
|
|||||||
class FakeResidentRunner extends Fake implements ResidentRunner {
|
class FakeResidentRunner extends Fake implements ResidentRunner {
|
||||||
FakeResidentRunner({
|
FakeResidentRunner({
|
||||||
required this.doResolveToError,
|
required this.doResolveToError,
|
||||||
|
required this.debuggingOptions,
|
||||||
}) {
|
}) {
|
||||||
instance = this;
|
instance = this;
|
||||||
}
|
}
|
||||||
@ -336,6 +349,8 @@ class FakeResidentRunner extends Fake implements ResidentRunner {
|
|||||||
static late FakeResidentRunner instance;
|
static late FakeResidentRunner instance;
|
||||||
|
|
||||||
final bool doResolveToError;
|
final bool doResolveToError;
|
||||||
|
@override
|
||||||
|
final DebuggingOptions debuggingOptions;
|
||||||
final Completer<int> _exitCompleter = Completer<int>();
|
final Completer<int> _exitCompleter = Completer<int>();
|
||||||
final List<String> callLog = <String>[];
|
final List<String> callLog = <String>[];
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user