From f8e51ad621490f352e24c85e33f7bcba5ab2e51b Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Sat, 14 May 2022 17:21:31 +0300 Subject: [PATCH 01/18] fix: unreliable encoding --- .../lib/webview_flutter_web.dart | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart b/packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart index 637c24926275..68ed43d9d7a8 100644 --- a/packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart +++ b/packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart @@ -3,6 +3,7 @@ // found in the LICENSE file. import 'dart:async'; +import 'dart:convert'; import 'dart:html'; import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; @@ -183,7 +184,11 @@ class WebWebViewPlatformController implements WebViewPlatformController { String? baseUrl, }) async { // ignore: unsafe_html - _element.src = 'data:text/html,${Uri.encodeFull(html)}'; + _element.src = Uri.dataFromString( + html, + mimeType: 'text/html', + encoding: Encoding.getByName('utf-8'), + ).toString(); } @override @@ -199,8 +204,11 @@ class WebWebViewPlatformController implements WebViewPlatformController { final String contentType = httpReq.getResponseHeader('content-type') ?? 'text/html'; // ignore: unsafe_html - _element.src = - 'data:$contentType,${Uri.encodeFull(httpReq.responseText ?? '')}'; + _element.src = Uri.dataFromString( + httpReq.responseText ?? '', + mimeType: contentType, + encoding: Encoding.getByName('utf-8'), + ).toString(); } @override From e9dfa1fd28ba56a0cf79426059e5c7bc9e7e1bb7 Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Sat, 14 May 2022 18:47:18 +0300 Subject: [PATCH 02/18] chore: update version and changelog --- .../webview_flutter_web/CHANGELOG.md | 16 ++++++++++------ .../webview_flutter_web/pubspec.yaml | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md index 8ab70f9a78d3..54a4d5904d28 100644 --- a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md @@ -1,18 +1,22 @@ +## 0.1.0+4 + +- Fixes unreliable encoding of HTML to the iframe element. + ## 0.1.0+3 -* Minor fixes for new analysis options. +- Minor fixes for new analysis options. ## 0.1.0+2 -* Removes unnecessary imports. -* Fixes unit tests to run on latest `master` version of Flutter. -* Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors +- Removes unnecessary imports. +- Fixes unit tests to run on latest `master` version of Flutter. +- Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors lint warnings. ## 0.1.0+1 -* Adds an explanation of registering the implementation in the README. +- Adds an explanation of registering the implementation in the README. ## 0.1.0 -* First web implementation for webview_flutter +- First web implementation for webview_flutter diff --git a/packages/webview_flutter/webview_flutter_web/pubspec.yaml b/packages/webview_flutter/webview_flutter_web/pubspec.yaml index a834c9b77d51..6eff38e96644 100644 --- a/packages/webview_flutter/webview_flutter_web/pubspec.yaml +++ b/packages/webview_flutter/webview_flutter_web/pubspec.yaml @@ -2,7 +2,7 @@ name: webview_flutter_web description: A Flutter plugin that provides a WebView widget on web. repository: https://github.com/flutter/plugins/tree/main/packages/webview_flutter/webview_flutter_web issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22 -version: 0.1.0+3 +version: 0.1.0+4 environment: sdk: ">=2.14.0 <3.0.0" From e0b13de8f2c02f5afd940eb5138ccd603617118f Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Sat, 14 May 2022 18:48:29 +0300 Subject: [PATCH 03/18] revert changelog formatting --- .../webview_flutter_web/CHANGELOG.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md index 54a4d5904d28..2f40537ebafd 100644 --- a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md @@ -1,22 +1,22 @@ ## 0.1.0+4 -- Fixes unreliable encoding of HTML to the iframe element. +* Fixes unreliable encoding of HTML to the iframe element. ## 0.1.0+3 -- Minor fixes for new analysis options. +* Minor fixes for new analysis options. ## 0.1.0+2 -- Removes unnecessary imports. -- Fixes unit tests to run on latest `master` version of Flutter. -- Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors +* Removes unnecessary imports. +* Fixes unit tests to run on latest `master` version of Flutter. +* Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors lint warnings. ## 0.1.0+1 -- Adds an explanation of registering the implementation in the README. +* Adds an explanation of registering the implementation in the README. ## 0.1.0 -- First web implementation for webview_flutter +* First web implementation for webview_flutter From 0b61f9ceb9c9973b53cc4af6cb6b6296d2f123ee Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Thu, 26 May 2022 19:57:29 +0300 Subject: [PATCH 04/18] update tests to use new encoding --- .../test/webview_flutter_web_test.dart | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index 6058dcf07272..4d9ec4e053bf 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +import 'dart:convert'; import 'dart:html'; import 'dart:typed_data'; @@ -64,7 +65,11 @@ void main() { // Run controller.loadHtmlString('test html'); // Verify - verify(mockElement.src = 'data:text/html,${Uri.encodeFull('test html')}'); + verify(mockElement.src = Uri.dataFromString( + 'test html', + mimeType: 'text/html', + encoding: Encoding.getByName('utf-8'), + ).toString()); }); group('loadRequest', () { @@ -122,8 +127,11 @@ void main() { requestHeaders: {'Foo': 'Bar'}, sendData: Uint8List.fromList('test body'.codeUnits), )); - verify( - mockElement.src = 'data:text/plain,${Uri.encodeFull('test data')}'); + verify(mockElement.src = Uri.dataFromString( + 'test data', + mimeType: 'text/plain', + encoding: Encoding.getByName('utf-8'), + ).toString()); }); }); }); From 99b5c76bd1abb2c23413f40e69b6cb5c4a3a9e7d Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Tue, 7 Jun 2022 21:35:59 +0300 Subject: [PATCH 05/18] correct new test --- .../test/webview_flutter_web_test.dart | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index 4d9ec4e053bf..e5b5dda7abb2 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -55,7 +55,7 @@ void main() { verify(mockElement.src = 'test url'); }); - test('loadHtmlString loads html into iframe', () { + test('loadHtmlString escapes "#" correctly', () { // Setup final MockIFrameElement mockElement = MockIFrameElement(); final WebWebViewPlatformController controller = @@ -63,13 +63,9 @@ void main() { mockElement, ); // Run - controller.loadHtmlString('test html'); + controller.loadHtmlString('#'); // Verify - verify(mockElement.src = Uri.dataFromString( - 'test html', - mimeType: 'text/html', - encoding: Encoding.getByName('utf-8'), - ).toString()); + verify(mockElement.src = 'data:text/html;charset=utf-8,%23'); }); group('loadRequest', () { From 57815623e6cdb5e8f8d560ecc4d3be567b9978c8 Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Tue, 7 Jun 2022 21:37:04 +0300 Subject: [PATCH 06/18] fix unnecessary `Encoding.getByName` --- .../webview_flutter_web/lib/webview_flutter_web.dart | 4 ++-- .../webview_flutter_web/test/webview_flutter_web_test.dart | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart b/packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart index 68ed43d9d7a8..adf6495b8f2a 100644 --- a/packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart +++ b/packages/webview_flutter/webview_flutter_web/lib/webview_flutter_web.dart @@ -187,7 +187,7 @@ class WebWebViewPlatformController implements WebViewPlatformController { _element.src = Uri.dataFromString( html, mimeType: 'text/html', - encoding: Encoding.getByName('utf-8'), + encoding: utf8, ).toString(); } @@ -207,7 +207,7 @@ class WebWebViewPlatformController implements WebViewPlatformController { _element.src = Uri.dataFromString( httpReq.responseText ?? '', mimeType: contentType, - encoding: Encoding.getByName('utf-8'), + encoding: utf8, ).toString(); } diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index e5b5dda7abb2..ab6d78212af8 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -126,7 +126,7 @@ void main() { verify(mockElement.src = Uri.dataFromString( 'test data', mimeType: 'text/plain', - encoding: Encoding.getByName('utf-8'), + encoding: utf8, ).toString()); }); }); From 397f60954616d5dd8c5fc431270e925e5b72946c Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Tue, 7 Jun 2022 21:40:22 +0300 Subject: [PATCH 07/18] change changelog --- .../webview_flutter_web/CHANGELOG.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md index 2f40537ebafd..3c0c9d1bf915 100644 --- a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md @@ -1,22 +1,22 @@ ## 0.1.0+4 -* Fixes unreliable encoding of HTML to the iframe element. +- Fixes incorrect escaping of some characters when setting the HTML to the iframe element. ## 0.1.0+3 -* Minor fixes for new analysis options. +- Minor fixes for new analysis options. ## 0.1.0+2 -* Removes unnecessary imports. -* Fixes unit tests to run on latest `master` version of Flutter. -* Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors +- Removes unnecessary imports. +- Fixes unit tests to run on latest `master` version of Flutter. +- Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors lint warnings. ## 0.1.0+1 -* Adds an explanation of registering the implementation in the README. +- Adds an explanation of registering the implementation in the README. ## 0.1.0 -* First web implementation for webview_flutter +- First web implementation for webview_flutter From 42bf1097261de27767298821d0ab6fd850ea328b Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Tue, 7 Jun 2022 21:44:39 +0300 Subject: [PATCH 08/18] revert changelog autoformat --- .../webview_flutter_web/CHANGELOG.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md index 3c0c9d1bf915..631608689a7a 100644 --- a/packages/webview_flutter/webview_flutter_web/CHANGELOG.md +++ b/packages/webview_flutter/webview_flutter_web/CHANGELOG.md @@ -1,22 +1,22 @@ ## 0.1.0+4 -- Fixes incorrect escaping of some characters when setting the HTML to the iframe element. +* Fixes incorrect escaping of some characters when setting the HTML to the iframe element. ## 0.1.0+3 -- Minor fixes for new analysis options. +* Minor fixes for new analysis options. ## 0.1.0+2 -- Removes unnecessary imports. -- Fixes unit tests to run on latest `master` version of Flutter. -- Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors +* Removes unnecessary imports. +* Fixes unit tests to run on latest `master` version of Flutter. +* Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors lint warnings. ## 0.1.0+1 -- Adds an explanation of registering the implementation in the README. +* Adds an explanation of registering the implementation in the README. ## 0.1.0 -- First web implementation for webview_flutter +* First web implementation for webview_flutter From 5d9e7c13b0b32a2c04cbd20c33bc54eda5ed2906 Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Fri, 17 Jun 2022 23:39:46 +0300 Subject: [PATCH 09/18] revert deleted test --- .../test/webview_flutter_web_test.dart | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index ab6d78212af8..8e4cb789c821 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -55,6 +55,19 @@ void main() { verify(mockElement.src = 'test url'); }); + test('loadHtmlString loads html into iframe', () { + // Setup + final MockIFrameElement mockElement = MockIFrameElement(); + final WebWebViewPlatformController controller = + WebWebViewPlatformController( + mockElement, + ); + // Run + controller.loadHtmlString('test html'); + // Verify + verify(mockElement.src = 'data:text/html,${Uri.encodeFull('test html')}'); + }); + test('loadHtmlString escapes "#" correctly', () { // Setup final MockIFrameElement mockElement = MockIFrameElement(); From 15deea534f24b7f81f37888f70dff6a8c04cbd7c Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Fri, 17 Jun 2022 23:50:06 +0300 Subject: [PATCH 10/18] fix loadHtmlString test --- .../webview_flutter_web/test/webview_flutter_web_test.dart | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index 8e4cb789c821..12b7a0424a1e 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -65,7 +65,8 @@ void main() { // Run controller.loadHtmlString('test html'); // Verify - verify(mockElement.src = 'data:text/html,${Uri.encodeFull('test html')}'); + verify(mockElement.src = + 'data:text/html;charset=utf-8,${Uri.encodeFull('test html')}'); }); test('loadHtmlString escapes "#" correctly', () { From b76093692bcb693a7c8168f626e6d0b412b556e9 Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Sat, 18 Jun 2022 12:02:22 +0300 Subject: [PATCH 11/18] change verify to be more explicit and fit simillar ones --- .../webview_flutter_web/test/webview_flutter_web_test.dart | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index 12b7a0424a1e..5671f6889a1d 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -137,11 +137,8 @@ void main() { requestHeaders: {'Foo': 'Bar'}, sendData: Uint8List.fromList('test body'.codeUnits), )); - verify(mockElement.src = Uri.dataFromString( - 'test data', - mimeType: 'text/plain', - encoding: utf8, - ).toString()); + verify(mockElement.src = + 'data:text/plain;charset=utf-8,${Uri.encodeFull('test data')}'); }); }); }); From d2704edfa2a3caecbd12f72b84739f8f2444588e Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Sat, 18 Jun 2022 12:03:54 +0300 Subject: [PATCH 12/18] group loadHtmlString tests --- .../test/webview_flutter_web_test.dart | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index 5671f6889a1d..15cde1a7d3a1 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -55,31 +55,33 @@ void main() { verify(mockElement.src = 'test url'); }); - test('loadHtmlString loads html into iframe', () { - // Setup - final MockIFrameElement mockElement = MockIFrameElement(); - final WebWebViewPlatformController controller = - WebWebViewPlatformController( - mockElement, - ); - // Run - controller.loadHtmlString('test html'); - // Verify - verify(mockElement.src = - 'data:text/html;charset=utf-8,${Uri.encodeFull('test html')}'); - }); + group('loadHtmlString', () { + test('loadHtmlString loads html into iframe', () { + // Setup + final MockIFrameElement mockElement = MockIFrameElement(); + final WebWebViewPlatformController controller = + WebWebViewPlatformController( + mockElement, + ); + // Run + controller.loadHtmlString('test html'); + // Verify + verify(mockElement.src = + 'data:text/html;charset=utf-8,${Uri.encodeFull('test html')}'); + }); - test('loadHtmlString escapes "#" correctly', () { - // Setup - final MockIFrameElement mockElement = MockIFrameElement(); - final WebWebViewPlatformController controller = - WebWebViewPlatformController( - mockElement, - ); - // Run - controller.loadHtmlString('#'); - // Verify - verify(mockElement.src = 'data:text/html;charset=utf-8,%23'); + test('loadHtmlString escapes "#" correctly', () { + // Setup + final MockIFrameElement mockElement = MockIFrameElement(); + final WebWebViewPlatformController controller = + WebWebViewPlatformController( + mockElement, + ); + // Run + controller.loadHtmlString('#'); + // Verify + verify(mockElement.src = 'data:text/html;charset=utf-8,%23'); + }); }); group('loadRequest', () { From 7df9cfa51a66e83456c85c681b5b01a63860f8ff Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Sat, 18 Jun 2022 12:11:58 +0300 Subject: [PATCH 13/18] loadRequest escapes # correctly test --- .../test/webview_flutter_web_test.dart | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index 15cde1a7d3a1..4ce251df528c 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -142,6 +142,38 @@ void main() { verify(mockElement.src = 'data:text/plain;charset=utf-8,${Uri.encodeFull('test data')}'); }); + + test('loadRequest escapes "#" correctly', () async { + // Setup + final MockIFrameElement mockElement = MockIFrameElement(); + final WebWebViewPlatformController controller = + WebWebViewPlatformController( + mockElement, + ); + final MockHttpRequest mockHttpRequest = MockHttpRequest(); + when(mockHttpRequest.getResponseHeader('content-type')) + .thenReturn('text/plain'); + when(mockHttpRequest.responseText).thenReturn('#'); + final MockHttpRequestFactory mockHttpRequestFactory = + MockHttpRequestFactory(); + when(mockHttpRequestFactory.request( + any, + method: anyNamed('method'), + requestHeaders: anyNamed('requestHeaders'), + sendData: anyNamed('sendData'), + )).thenAnswer((_) => Future.value(mockHttpRequest)); + controller.httpRequestFactory = mockHttpRequestFactory; + // Run + await controller.loadRequest( + WebViewRequest( + uri: Uri.parse('https://flutter.dev'), + method: WebViewRequestMethod.post, + body: Uint8List.fromList('test body'.codeUnits), + headers: {'Foo': 'Bar'}), + ); + // Verify + verify(mockElement.src = 'data:text/plain;charset=utf-8,%23'); + }); }); }); } From 95fd76b2d93227737183ffdbc8d346745d3d676b Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Sat, 18 Jun 2022 12:26:02 +0300 Subject: [PATCH 14/18] change loadRequest escapes # correctly test to text/html --- .../webview_flutter_web/test/webview_flutter_web_test.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index 4ce251df528c..55ba95d878f9 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -152,7 +152,7 @@ void main() { ); final MockHttpRequest mockHttpRequest = MockHttpRequest(); when(mockHttpRequest.getResponseHeader('content-type')) - .thenReturn('text/plain'); + .thenReturn('text/html'); when(mockHttpRequest.responseText).thenReturn('#'); final MockHttpRequestFactory mockHttpRequestFactory = MockHttpRequestFactory(); @@ -172,7 +172,7 @@ void main() { headers: {'Foo': 'Bar'}), ); // Verify - verify(mockElement.src = 'data:text/plain;charset=utf-8,%23'); + verify(mockElement.src = 'data:text/html;charset=utf-8,%23'); }); }); }); From d62c793cffcce6a6ef06750239de846371d6437a Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Sat, 18 Jun 2022 12:27:44 +0300 Subject: [PATCH 15/18] fix loadRequest test text/plain isn't in the final string. --- .../webview_flutter_web/test/webview_flutter_web_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index 55ba95d878f9..3d5c1dff8211 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -140,7 +140,7 @@ void main() { sendData: Uint8List.fromList('test body'.codeUnits), )); verify(mockElement.src = - 'data:text/plain;charset=utf-8,${Uri.encodeFull('test data')}'); + 'data:;charset=utf-8,${Uri.encodeFull('test data')}'); }); test('loadRequest escapes "#" correctly', () async { From c1c4884bedc001c973b26879d74d352647c987e4 Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Wed, 22 Jun 2022 11:30:06 +0300 Subject: [PATCH 16/18] remove unused import --- .../webview_flutter_web/test/webview_flutter_web_test.dart | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index 3d5c1dff8211..31645a25098a 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -2,7 +2,6 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'dart:convert'; import 'dart:html'; import 'dart:typed_data'; From 61c0028e29441113346ead988ad3e1da1b72e2a6 Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Wed, 22 Jun 2022 22:55:19 +0300 Subject: [PATCH 17/18] change # tests to verify with contains instead --- .../webview_flutter_web/test/webview_flutter_web_test.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index 31645a25098a..c9a6a7b7bc5a 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -79,7 +79,7 @@ void main() { // Run controller.loadHtmlString('#'); // Verify - verify(mockElement.src = 'data:text/html;charset=utf-8,%23'); + verify(mockElement.src = argThat(contains("%23"))); }); }); @@ -171,7 +171,7 @@ void main() { headers: {'Foo': 'Bar'}), ); // Verify - verify(mockElement.src = 'data:text/html;charset=utf-8,%23'); + verify(mockElement.src = argThat(contains("%23"))); }); }); }); From 902e8f33e3be87ef04891e8d09dbe7fbe3c15376 Mon Sep 17 00:00:00 2001 From: FlafyDev Date: Wed, 22 Jun 2022 23:30:05 +0300 Subject: [PATCH 18/18] convert double quotes to single quotes --- .../webview_flutter_web/test/webview_flutter_web_test.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart index c9a6a7b7bc5a..08337e42e661 100644 --- a/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart +++ b/packages/webview_flutter/webview_flutter_web/test/webview_flutter_web_test.dart @@ -79,7 +79,7 @@ void main() { // Run controller.loadHtmlString('#'); // Verify - verify(mockElement.src = argThat(contains("%23"))); + verify(mockElement.src = argThat(contains('%23'))); }); }); @@ -171,7 +171,7 @@ void main() { headers: {'Foo': 'Bar'}), ); // Verify - verify(mockElement.src = argThat(contains("%23"))); + verify(mockElement.src = argThat(contains('%23'))); }); }); });