Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
b953c3e5
Unverified
Commit
b953c3e5
authored
Feb 07, 2020
by
Alexandre Ardhuin
Committed by
GitHub
Feb 07, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use raw strings to avoid escaping (#50322)
parent
8735ab1e
Changes
28
Show whitespace changes
Inline
Side-by-side
Showing
28 changed files
with
171 additions
and
157 deletions
+171
-157
analyze_test.dart
dev/bots/test/analyze_test.dart
+3
-3
gradle_migrate_settings_test.dart
dev/devicelab/bin/tasks/gradle_migrate_settings_test.dart
+3
-3
utils.dart
dev/devicelab/lib/framework/utils.dart
+1
-1
perf_tests.dart
dev/devicelab/lib/tasks/perf_tests.dart
+1
-1
snippets_test.dart
dev/snippets/test/snippets_test.dart
+10
-10
gen_l10n_test.dart
dev/tools/test/localization/gen_l10n_test.dart
+53
-40
vitool.dart
dev/tools/vitool/lib/vitool.dart
+2
-2
vitool_test.dart
dev/tools/vitool/test/vitool_test.dart
+1
-1
text_form_field_demo.dart
...utter_gallery/lib/demo/material/text_form_field_demo.dart
+1
-1
diagnostics.dart
packages/flutter/lib/src/foundation/diagnostics.dart
+1
-1
error_reporting_test.dart
packages/flutter/test/foundation/error_reporting_test.dart
+50
-50
text_test.dart
packages/flutter/test/widgets/text_test.dart
+2
-2
web_driver.dart
packages/flutter_driver/lib/src/driver/web_driver.dart
+8
-7
_extension_web.dart
...ages/flutter_driver/lib/src/extension/_extension_web.dart
+2
-2
web_extension_test.dart
...flutter_driver/test/src/web_tests/web_extension_test.dart
+1
-1
file_system.dart
packages/flutter_tools/lib/src/base/file_system.dart
+1
-1
project.dart
packages/flutter_tools/lib/src/project.dart
+1
-1
vscode.dart
packages/flutter_tools/lib/src/vscode/vscode.dart
+2
-2
web_device.dart
packages/flutter_tools/lib/src/web/web_device.dart
+1
-1
analyze_once_test.dart
...ools/test/commands.shard/permeable/analyze_once_test.dart
+1
-1
gradle_errors_test.dart
..._tools/test/general.shard/android/gradle_errors_test.dart
+12
-12
gradle_test.dart
...flutter_tools/test/general.shard/android/gradle_test.dart
+3
-3
file_system_test.dart
...utter_tools/test/general.shard/base/file_system_test.dart
+3
-3
logger_test.dart
...es/flutter_tools/test/general.shard/base/logger_test.dart
+1
-1
compile_incremental_test.dart
...er_tools/test/general.shard/compile_incremental_test.dart
+3
-3
project_test.dart
packages/flutter_tools/test/general.shard/project_test.dart
+2
-2
devices_test.dart
...es/flutter_tools/test/general.shard/web/devices_test.dart
+1
-1
fuchsia_remote_connection.dart
...ote_debug_protocol/lib/src/fuchsia_remote_connection.dart
+1
-1
No files found.
dev/bots/test/analyze_test.dart
View file @
b953c3e5
...
@@ -49,7 +49,7 @@ void main() {
...
@@ -49,7 +49,7 @@ void main() {
'test/analyze-test-input/root/packages/foo/deprecation.dart:41: Deprecation notice does not match required pattern.
\n
'
'test/analyze-test-input/root/packages/foo/deprecation.dart:41: Deprecation notice does not match required pattern.
\n
'
'test/analyze-test-input/root/packages/foo/deprecation.dart:48: End of deprecation notice does not match required pattern.
\n
'
'test/analyze-test-input/root/packages/foo/deprecation.dart:48: End of deprecation notice does not match required pattern.
\n
'
'test/analyze-test-input/root/packages/foo/deprecation.dart:51: Unexpected deprecation notice indent.
\n
'
'test/analyze-test-input/root/packages/foo/deprecation.dart:51: Unexpected deprecation notice indent.
\n
'
.
replaceAll
(
'/'
,
Platform
.
isWindows
?
'
\
\
'
:
'/'
)
.
replaceAll
(
'/'
,
Platform
.
isWindows
?
r'
\'
:
'/'
)
)
)
+
+
'See: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
\n
'
'See: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
\n
'
...
@@ -65,7 +65,7 @@ void main() {
...
@@ -65,7 +65,7 @@ void main() {
(
(
'The following 1 file does not have the right license header:
\n
'
'The following 1 file does not have the right license header:
\n
'
'test/analyze-test-input/root/packages/foo/foo.dart
\n
'
'test/analyze-test-input/root/packages/foo/foo.dart
\n
'
.
replaceAll
(
'/'
,
Platform
.
isWindows
?
'
\
\
'
:
'/'
)
.
replaceAll
(
'/'
,
Platform
.
isWindows
?
r'
\'
:
'/'
)
)
)
+
+
'The expected license header is:
\n
'
'The expected license header is:
\n
'
...
@@ -85,7 +85,7 @@ void main() {
...
@@ -85,7 +85,7 @@ void main() {
(
(
'test/analyze-test-input/root/packages/foo/spaces.txt:5: trailing U+0020 space character
\n
'
'test/analyze-test-input/root/packages/foo/spaces.txt:5: trailing U+0020 space character
\n
'
'test/analyze-test-input/root/packages/foo/spaces.txt:9: trailing blank line
\n
'
'test/analyze-test-input/root/packages/foo/spaces.txt:9: trailing blank line
\n
'
.
replaceAll
(
'/'
,
Platform
.
isWindows
?
'
\
\
'
:
'/'
)
.
replaceAll
(
'/'
,
Platform
.
isWindows
?
r'
\'
:
'/'
)
)
)
+
+
'━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
\n
'
'━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
\n
'
...
...
dev/devicelab/bin/tasks/gradle_migrate_settings_test.dart
View file @
b953c3e5
...
@@ -73,7 +73,7 @@ Future<void> main() async {
...
@@ -73,7 +73,7 @@ Future<void> main() async {
section
(
'Override settings.gradle V2'
);
section
(
'Override settings.gradle V2'
);
const
String
deprecatedFileContentV2
=
'''
const
String
deprecatedFileContentV2
=
r
''
'
include '
:
app
'
include '
:
app
'
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
...
@@ -86,8 +86,8 @@ if (pluginsFile.exists()) {
...
@@ -86,8 +86,8 @@ if (pluginsFile.exists()) {
plugins.each { name, path ->
plugins.each { name, path ->
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('
android
').toFile()
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('
android
').toFile()
include ":
\
$name
"
include ":
$name
"
project(":
\
$name
").projectDir = pluginDirectory
project(":
$name
").projectDir = pluginDirectory
}
}
'''
;
'''
;
settingsGradle
.
writeAsStringSync
(
deprecatedFileContentV2
,
flush:
true
);
settingsGradle
.
writeAsStringSync
(
deprecatedFileContentV2
,
flush:
true
);
...
...
dev/devicelab/lib/framework/utils.dart
View file @
b953c3e5
...
@@ -588,7 +588,7 @@ String extractCloudAuthTokenArg(List<String> rawArgs) {
...
@@ -588,7 +588,7 @@ String extractCloudAuthTokenArg(List<String> rawArgs) {
final
RegExp
_obsRegExp
=
final
RegExp
_obsRegExp
=
RegExp
(
'An Observatory debugger .* is available at: '
);
RegExp
(
'An Observatory debugger .* is available at: '
);
final
RegExp
_obsPortRegExp
=
RegExp
(
'(
\\
S+:(
\\
d+)/
\\
S*)
\
$
'
);
final
RegExp
_obsPortRegExp
=
RegExp
(
r'(\S+:(\d+)/\S*)
$'
);
final
RegExp
_obsUriRegExp
=
RegExp
(
r'((http|//)[a-zA-Z0-9:/=_\-\.\[\]]+)'
);
final
RegExp
_obsUriRegExp
=
RegExp
(
r'((http|//)[a-zA-Z0-9:/=_\-\.\[\]]+)'
);
/// Tries to extract a port from the string.
/// Tries to extract a port from the string.
...
...
dev/devicelab/lib/tasks/perf_tests.dart
View file @
b953c3e5
...
@@ -777,7 +777,7 @@ class ListStatistics {
...
@@ -777,7 +777,7 @@ class ListStatistics {
class
_UnzipListEntry
{
class
_UnzipListEntry
{
factory
_UnzipListEntry
.
fromLine
(
String
line
)
{
factory
_UnzipListEntry
.
fromLine
(
String
line
)
{
final
List
<
String
>
data
=
line
.
trim
().
split
(
RegExp
(
'
\
\
s+'
));
final
List
<
String
>
data
=
line
.
trim
().
split
(
RegExp
(
r'
\s+'
));
assert
(
data
.
length
==
8
);
assert
(
data
.
length
==
8
);
return
_UnzipListEntry
.
_
(
return
_UnzipListEntry
.
_
(
uncompressedSize:
int
.
parse
(
data
[
0
]),
uncompressedSize:
int
.
parse
(
data
[
0
]),
...
...
dev/snippets/test/snippets_test.dart
View file @
b953c3e5
...
@@ -64,7 +64,7 @@ main() {
...
@@ -64,7 +64,7 @@ main() {
test
(
'generates application snippets'
,
()
async
{
test
(
'generates application snippets'
,
()
async
{
final
File
inputFile
=
File
(
path
.
join
(
tmpDir
.
absolute
.
path
,
'snippet_in.txt'
))
final
File
inputFile
=
File
(
path
.
join
(
tmpDir
.
absolute
.
path
,
'snippet_in.txt'
))
..
createSync
(
recursive:
true
)
..
createSync
(
recursive:
true
)
..
writeAsStringSync
(
'''
..
writeAsStringSync
(
r
''
'
A description of the snippet.
A description of the snippet.
On several lines.
On several lines.
...
@@ -75,7 +75,7 @@ const String name = 'snippet';
...
@@ -75,7 +75,7 @@ const String name = 'snippet';
```dart
```dart
void main() {
void main() {
print('
The
actual
\
$name
.
');
print('
The
actual
$name
.
');
}
}
```
```
'''
);
'''
);
...
@@ -93,7 +93,7 @@ void main() {
...
@@ -93,7 +93,7 @@ void main() {
);
);
expect
(
html
,
contains
(
'<div>HTML Bits</div>'
));
expect
(
html
,
contains
(
'<div>HTML Bits</div>'
));
expect
(
html
,
contains
(
'<div>More HTML Bits</div>'
));
expect
(
html
,
contains
(
'<div>More HTML Bits</div>'
));
expect
(
html
,
contains
(
'print('The actual
\
$name
.');'
));
expect
(
html
,
contains
(
r'print('The actual
$name.');'
));
expect
(
html
,
contains
(
'A description of the snippet.
\n
'
));
expect
(
html
,
contains
(
'A description of the snippet.
\n
'
));
expect
(
expect
(
html
,
html
,
...
@@ -112,14 +112,14 @@ void main() {
...
@@ -112,14 +112,14 @@ void main() {
test
(
'generates sample snippets'
,
()
async
{
test
(
'generates sample snippets'
,
()
async
{
final
File
inputFile
=
File
(
path
.
join
(
tmpDir
.
absolute
.
path
,
'snippet_in.txt'
))
final
File
inputFile
=
File
(
path
.
join
(
tmpDir
.
absolute
.
path
,
'snippet_in.txt'
))
..
createSync
(
recursive:
true
)
..
createSync
(
recursive:
true
)
..
writeAsStringSync
(
'''
..
writeAsStringSync
(
r
''
'
A description of the snippet.
A description of the snippet.
On several lines.
On several lines.
```code
```code
void main() {
void main() {
print('
The
actual
\
$name
.
');
print('
The
actual
$name
.
');
}
}
```
```
'''
);
'''
);
...
@@ -131,7 +131,7 @@ void main() {
...
@@ -131,7 +131,7 @@ void main() {
);
);
expect
(
html
,
contains
(
'<div>HTML Bits</div>'
));
expect
(
html
,
contains
(
'<div>HTML Bits</div>'
));
expect
(
html
,
contains
(
'<div>More HTML Bits</div>'
));
expect
(
html
,
contains
(
'<div>More HTML Bits</div>'
));
expect
(
html
,
contains
(
' print('The actual
\
$name
.');'
));
expect
(
html
,
contains
(
r' print('The actual
$name.');'
));
expect
(
html
,
contains
(
'<div class="snippet-description">{@end-inject-html}A description of the snippet.
\n\n
'
expect
(
html
,
contains
(
'<div class="snippet-description">{@end-inject-html}A description of the snippet.
\n\n
'
'On several lines.{@inject-html}</div>
\n
'
));
'On several lines.{@inject-html}</div>
\n
'
));
expect
(
html
,
contains
(
'main() {'
));
expect
(
html
,
contains
(
'main() {'
));
...
@@ -140,14 +140,14 @@ void main() {
...
@@ -140,14 +140,14 @@ void main() {
test
(
'generates dartpad snippets'
,
()
async
{
test
(
'generates dartpad snippets'
,
()
async
{
final
File
inputFile
=
File
(
path
.
join
(
tmpDir
.
absolute
.
path
,
'snippet_in.txt'
))
final
File
inputFile
=
File
(
path
.
join
(
tmpDir
.
absolute
.
path
,
'snippet_in.txt'
))
..
createSync
(
recursive:
true
)
..
createSync
(
recursive:
true
)
..
writeAsStringSync
(
'''
..
writeAsStringSync
(
r
''
'
A description of the snippet.
A description of the snippet.
On several lines.
On several lines.
```code
```code
void main() {
void main() {
print('
The
actual
\
$name
.
');
print('
The
actual
$name
.
');
}
}
```
```
'''
);
'''
);
...
@@ -167,14 +167,14 @@ void main() {
...
@@ -167,14 +167,14 @@ void main() {
test
(
'generates snippet application metadata'
,
()
async
{
test
(
'generates snippet application metadata'
,
()
async
{
final
File
inputFile
=
File
(
path
.
join
(
tmpDir
.
absolute
.
path
,
'snippet_in.txt'
))
final
File
inputFile
=
File
(
path
.
join
(
tmpDir
.
absolute
.
path
,
'snippet_in.txt'
))
..
createSync
(
recursive:
true
)
..
createSync
(
recursive:
true
)
..
writeAsStringSync
(
'''
..
writeAsStringSync
(
r
''
'
A description of the snippet.
A description of the snippet.
On several lines.
On several lines.
```code
```code
void main() {
void main() {
print('
The
actual
\
$name
.
');
print('
The
actual
$name
.
');
}
}
```
```
'''
);
'''
);
...
...
dev/tools/test/localization/gen_l10n_test.dart
View file @
b953c3e5
...
@@ -433,9 +433,9 @@ void main() {
...
@@ -433,9 +433,9 @@ void main() {
}
}
if
(
Platform
.
isWindows
)
{
if
(
Platform
.
isWindows
)
{
expect
(
generator
.
arbPathStrings
.
first
,
'lib
\\
l10n
\
\
app_en_US.arb'
);
expect
(
generator
.
arbPathStrings
.
first
,
r'lib\l10n
\app_en_US.arb'
);
expect
(
generator
.
arbPathStrings
.
elementAt
(
1
),
'lib
\\
l10n
\
\
app_es.arb'
);
expect
(
generator
.
arbPathStrings
.
elementAt
(
1
),
r'lib\l10n
\app_es.arb'
);
expect
(
generator
.
arbPathStrings
.
elementAt
(
2
),
'lib
\\
l10n
\
\
app_zh.arb'
);
expect
(
generator
.
arbPathStrings
.
elementAt
(
2
),
r'lib\l10n
\app_zh.arb'
);
}
else
{
}
else
{
expect
(
generator
.
arbPathStrings
.
first
,
'lib/l10n/app_en_US.arb'
);
expect
(
generator
.
arbPathStrings
.
first
,
'lib/l10n/app_en_US.arb'
);
expect
(
generator
.
arbPathStrings
.
elementAt
(
1
),
'lib/l10n/app_es.arb'
);
expect
(
generator
.
arbPathStrings
.
elementAt
(
1
),
'lib/l10n/app_es.arb'
);
...
@@ -610,7 +610,8 @@ void main() {
...
@@ -610,7 +610,8 @@ void main() {
expect
(
generator
.
classMethods
,
isNotEmpty
);
expect
(
generator
.
classMethods
,
isNotEmpty
);
expect
(
expect
(
generator
.
classMethods
.
first
,
generator
.
classMethods
.
first
,
''' String get title {
'''
String get title {
return Intl.message(
return Intl.message(
'
Title
',
'
Title
',
locale: _localeName,
locale: _localeName,
...
@@ -655,9 +656,10 @@ void main() {
...
@@ -655,9 +656,10 @@ void main() {
expect
(
generator
.
classMethods
,
isNotEmpty
);
expect
(
generator
.
classMethods
,
isNotEmpty
);
expect
(
expect
(
generator
.
classMethods
.
first
,
generator
.
classMethods
.
first
,
''' String itemNumber(Object value) {
r''
'
String itemNumber(Object value) {
return Intl.message(
return Intl.message(
'
Item
\
$
{
value
}
',
'
Item
$
{
value
}
',
locale: _localeName,
locale: _localeName,
name: '
itemNumber
',
name: '
itemNumber
',
desc: '
Item
placement
in
list
.
',
desc: '
Item
placement
in
list
.
',
...
@@ -704,13 +706,14 @@ void main() {
...
@@ -704,13 +706,14 @@ void main() {
expect
(
generator
.
classMethods
,
isNotEmpty
);
expect
(
generator
.
classMethods
,
isNotEmpty
);
expect
(
expect
(
generator
.
classMethods
.
first
,
generator
.
classMethods
.
first
,
''' String springBegins(DateTime springStartDate) {
r''
'
String springBegins(DateTime springStartDate) {
final DateFormat springStartDateDateFormat = DateFormat.yMMMMEEEEd(_localeName);
final DateFormat springStartDateDateFormat = DateFormat.yMMMMEEEEd(_localeName);
final String springStartDateString = springStartDateDateFormat.format(springStartDate);
final String springStartDateString = springStartDateDateFormat.format(springStartDate);
String springBegins(Object springStartDate) {
String springBegins(Object springStartDate) {
return Intl.message(
return Intl.message(
'
Spring
begins
on
\
$
{
springStartDate
}
',
'
Spring
begins
on
$
{
springStartDate
}
',
locale: _localeName,
locale: _localeName,
name: '
springBegins
',
name: '
springBegins
',
desc: '
The
first
day
of
spring
',
desc: '
The
first
day
of
spring
',
...
@@ -831,13 +834,14 @@ void main() {
...
@@ -831,13 +834,14 @@ void main() {
expect(generator.classMethods, isNotEmpty);
expect(generator.classMethods, isNotEmpty);
expect(
expect(
generator.classMethods.first,
generator.classMethods.first,
''' String springGreetings(DateTime springStartDate, Object helloWorld) {
r'''
String springGreetings(DateTime springStartDate, Object helloWorld) {
final DateFormat springStartDateDateFormat = DateFormat.yMMMMEEEEd(_localeName);
final DateFormat springStartDateDateFormat = DateFormat.yMMMMEEEEd(_localeName);
final String springStartDateString = springStartDateDateFormat.format(springStartDate);
final String springStartDateString = springStartDateDateFormat.format(springStartDate);
String springGreetings(Object springStartDate, Object helloWorld) {
String springGreetings(Object springStartDate, Object helloWorld) {
return Intl.message(
return Intl.message(
"
Since
it
's
\
${springStartDate}
, it'
s
finally
spring
!
\
$
{
helloWorld
}!
",
"
Since
it
's
${springStartDate}
, it'
s
finally
spring
!
$
{
helloWorld
}!
",
locale: _localeName,
locale: _localeName,
name: 'springGreetings',
name: 'springGreetings',
desc: "
A
realization
that
it
's finally the spring season, followed by a greeting.",
desc: "
A
realization
that
it
's finally the spring season, followed by a greeting.",
...
@@ -888,7 +892,8 @@ void main() {
...
@@ -888,7 +892,8 @@ void main() {
expect
(
generator
.
classMethods
,
isNotEmpty
);
expect
(
generator
.
classMethods
,
isNotEmpty
);
expect
(
expect
(
generator
.
classMethods
.
first
,
generator
.
classMethods
.
first
,
''' String springRange(DateTime springStartDate, DateTime springEndDate) {
'''
String springRange(DateTime springStartDate, DateTime springEndDate) {
final DateFormat springStartDateDateFormat = DateFormat.yMMMMEEEEd(_localeName);
final DateFormat springStartDateDateFormat = DateFormat.yMMMMEEEEd(_localeName);
final String springStartDateString = springStartDateDateFormat.format(springStartDate);
final String springStartDateString = springStartDateDateFormat.format(springStartDate);
...
@@ -944,7 +949,8 @@ void main() {
...
@@ -944,7 +949,8 @@ void main() {
expect
(
generator
.
classMethods
,
isNotEmpty
);
expect
(
generator
.
classMethods
,
isNotEmpty
);
expect
(
expect
(
generator
.
classMethods
.
first
,
generator
.
classMethods
.
first
,
''' String helloWorlds(int count, DateTime currentDate) {
r''
'
String helloWorlds(int count, DateTime currentDate) {
final DateFormat currentDateDateFormat = DateFormat.yMMMMEEEEd(_localeName);
final DateFormat currentDateDateFormat = DateFormat.yMMMMEEEEd(_localeName);
final String currentDateString = currentDateDateFormat.format(currentDate);
final String currentDateString = currentDateDateFormat.format(currentDate);
...
@@ -954,10 +960,10 @@ void main() {
...
@@ -954,10 +960,10 @@ void main() {
locale: _localeName,
locale: _localeName,
name: '
helloWorlds
',
name: '
helloWorlds
',
args: <Object>[count, currentDate],
args: <Object>[count, currentDate],
one: '
Hello
World
,
today
is
\
$
{
currentDateString
}
',
one: '
Hello
World
,
today
is
$
{
currentDateString
}
',
two: '
Hello
two
worlds
,
today
is
\
$
{
currentDateString
}
',
two: '
Hello
two
worlds
,
today
is
$
{
currentDateString
}
',
many: '
Hello
all
\$
{
count
}
worlds
,
today
is
\
$
{
currentDateString
}
',
many: '
Hello
all
$
{
count
}
worlds
,
today
is
$
{
currentDateString
}
',
other: '
Hello
other
\$
{
count
}
worlds
,
today
is
\
$
{
currentDateString
}
'
other: '
Hello
other
$
{
count
}
worlds
,
today
is
$
{
currentDateString
}
'
);
);
}
}
return helloWorlds(count, currentDateString);
return helloWorlds(count, currentDateString);
...
@@ -1001,7 +1007,8 @@ void main() {
...
@@ -1001,7 +1007,8 @@ void main() {
expect
(
generator
.
classMethods
,
isNotEmpty
);
expect
(
generator
.
classMethods
,
isNotEmpty
);
expect
(
expect
(
generator
.
classMethods
.
first
,
generator
.
classMethods
.
first
,
''' String courseCompletion(double progress) {
r''
'
String courseCompletion(double progress) {
final NumberFormat progressNumberFormat = NumberFormat.compact(
final NumberFormat progressNumberFormat = NumberFormat.compact(
locale: _localeName,
locale: _localeName,
);
);
...
@@ -1009,7 +1016,7 @@ void main() {
...
@@ -1009,7 +1016,7 @@ void main() {
String courseCompletion(Object progress) {
String courseCompletion(Object progress) {
return Intl.message(
return Intl.message(
'
You
have
completed
\
$
{
progress
}
of
the
course
.
',
'
You
have
completed
$
{
progress
}
of
the
course
.
',
locale: _localeName,
locale: _localeName,
name: '
courseCompletion
',
name: '
courseCompletion
',
desc: '
The
amount
of
progress
the
student
has
made
in
their
class
.',
desc: '
The
amount
of
progress
the
student
has
made
in
their
class
.',
...
@@ -1070,7 +1077,8 @@ void main() {
...
@@ -1070,7 +1077,8 @@ void main() {
expect(generator.classMethods, isNotEmpty);
expect(generator.classMethods, isNotEmpty);
expect(
expect(
generator.classMethods.first,
generator.classMethods.first,
'''
String
courseCompletion
(
double
progress
)
{
'''
String
courseCompletion
(
double
progress
)
{
final
NumberFormat
progressNumberFormat
=
NumberFormat
.
$numberFormat
(
final
NumberFormat
progressNumberFormat
=
NumberFormat
.
$numberFormat
(
locale:
_localeName
,
locale:
_localeName
,
decimalDigits:
2
,
decimalDigits:
2
,
...
@@ -1133,7 +1141,8 @@ void main() {
...
@@ -1133,7 +1141,8 @@ void main() {
expect(generator.classMethods, isNotEmpty);
expect(generator.classMethods, isNotEmpty);
expect(
expect(
generator.classMethods.first,
generator.classMethods.first,
'''
String
courseCompletion
(
double
progress
)
{
'''
String
courseCompletion
(
double
progress
)
{
final
NumberFormat
progressNumberFormat
=
NumberFormat
.
$numberFormat
(
_localeName
);
final
NumberFormat
progressNumberFormat
=
NumberFormat
.
$numberFormat
(
_localeName
);
final
String
progressString
=
progressNumberFormat
.
format
(
progress
);
final
String
progressString
=
progressNumberFormat
.
format
(
progress
);
...
@@ -1223,7 +1232,8 @@ void main() {
...
@@ -1223,7 +1232,8 @@ void main() {
expect(generator.classMethods, isNotEmpty);
expect(generator.classMethods, isNotEmpty);
expect(
expect(
generator.classMethods.first,
generator.classMethods.first,
'''
String
helloWorlds
(
int
count
)
{
r'''
String
helloWorlds
(
int
count
)
{
return
Intl
.
plural
(
return
Intl
.
plural
(
count
,
count
,
locale:
_localeName
,
locale:
_localeName
,
...
@@ -1232,9 +1242,9 @@ void main() {
...
@@ -1232,9 +1242,9 @@ void main() {
zero:
'Hello'
,
zero:
'Hello'
,
one:
'Hello World'
,
one:
'Hello World'
,
two:
'Hello two worlds'
,
two:
'Hello two worlds'
,
few:
'Hello
\
${count}
worlds'
,
few:
'Hello
${count}
worlds'
,
many:
'Hello all
\
${count}
worlds'
,
many:
'Hello all
${count}
worlds'
,
other:
'Hello other
\
${count}
worlds'
other:
'Hello other
${count}
worlds'
);
);
}
}
'''
'''
...
@@ -1273,18 +1283,19 @@ void main() {
...
@@ -1273,18 +1283,19 @@ void main() {
expect(generator.classMethods, isNotEmpty);
expect(generator.classMethods, isNotEmpty);
expect(
expect(
generator.classMethods.first,
generator.classMethods.first,
'''
String
helloWorlds
(
int
count
,
Object
adjective
)
{
r'''
String
helloWorlds
(
int
count
,
Object
adjective
)
{
return
Intl
.
plural
(
return
Intl
.
plural
(
count
,
count
,
locale:
_localeName
,
locale:
_localeName
,
name:
'helloWorlds'
,
name:
'helloWorlds'
,
args:
<
Object
>[
count
,
adjective
],
args:
<
Object
>[
count
,
adjective
],
zero:
'Hello'
,
zero:
'Hello'
,
one:
'Hello
\
${adjective}
World'
,
one:
'Hello
${adjective}
World'
,
two:
'Hello two
\
${adjective}
worlds'
,
two:
'Hello two
${adjective}
worlds'
,
few:
'Hello
\
${count}
\
${adjective}
worlds'
,
few:
'Hello
${count}
${adjective}
worlds'
,
many:
'Hello all
\
${count}
\
${adjective}
worlds'
,
many:
'Hello all
${count}
${adjective}
worlds'
,
other:
'Hello other
\
${count}
\
${adjective}
worlds'
other:
'Hello other
${count}
${adjective}
worlds'
);
);
}
}
'''
'''
...
@@ -1326,7 +1337,8 @@ void main() {
...
@@ -1326,7 +1337,8 @@ void main() {
expect(generator.classMethods, isNotEmpty);
expect(generator.classMethods, isNotEmpty);
expect(
expect(
generator.classMethods.first,
generator.classMethods.first,
'''
String
helloWorlds
(
int
count
,
DateTime
currentDate
)
{
r'''
String
helloWorlds
(
int
count
,
DateTime
currentDate
)
{
final
DateFormat
currentDateDateFormat
=
DateFormat
.
yMMMMEEEEd
(
_localeName
);
final
DateFormat
currentDateDateFormat
=
DateFormat
.
yMMMMEEEEd
(
_localeName
);
final
String
currentDateString
=
currentDateDateFormat
.
format
(
currentDate
);
final
String
currentDateString
=
currentDateDateFormat
.
format
(
currentDate
);
...
@@ -1336,10 +1348,10 @@ void main() {
...
@@ -1336,10 +1348,10 @@ void main() {
locale:
_localeName
,
locale:
_localeName
,
name:
'helloWorlds'
,
name:
'helloWorlds'
,
args:
<
Object
>[
count
,
currentDate
],
args:
<
Object
>[
count
,
currentDate
],
one:
'Hello World, today is
\
${currentDateString}
'
,
one:
'Hello World, today is
${currentDateString}
'
,
two:
'Hello two worlds, today is
\
${currentDateString}
'
,
two:
'Hello two worlds, today is
${currentDateString}
'
,
many:
'Hello all
\
${count}
worlds, today is
\
${currentDateString}
'
,
many:
'Hello all
${count}
worlds, today is
${currentDateString}
'
,
other:
'Hello other
\
${count}
worlds, today is
\
${currentDateString}
'
other:
'Hello other
${count}
worlds, today is
${currentDateString}
'
);
);
}
}
return
helloWorlds
(
count
,
currentDateString
);
return
helloWorlds
(
count
,
currentDateString
);
...
@@ -1383,7 +1395,8 @@ void main() {
...
@@ -1383,7 +1395,8 @@ void main() {
expect(generator.classMethods, isNotEmpty);
expect(generator.classMethods, isNotEmpty);
expect(
expect(
generator.classMethods.first,
generator.classMethods.first,
'''
String
helloWorlds
(
int
count
,
int
population
)
{
r'''
String
helloWorlds
(
int
count
,
int
population
)
{
final
NumberFormat
populationNumberFormat
=
NumberFormat
.
compactLong
(
final
NumberFormat
populationNumberFormat
=
NumberFormat
.
compactLong
(
locale:
_localeName
,
locale:
_localeName
,
);
);
...
@@ -1395,10 +1408,10 @@ void main() {
...
@@ -1395,10 +1408,10 @@ void main() {
locale:
_localeName
,
locale:
_localeName
,
name:
'helloWorlds'
,
name:
'helloWorlds'
,
args:
<
Object
>[
count
,
population
],
args:
<
Object
>[
count
,
population
],
one:
'Hello World of
\
${populationString}
citizens'
,
one:
'Hello World of
${populationString}
citizens'
,
two:
'Hello two worlds with
\
${populationString}
total citizens'
,
two:
'Hello two worlds with
${populationString}
total citizens'
,
many:
'Hello all
\
${count}
worlds, with a total of
\
${populationString}
citizens'
,
many:
'Hello all
${count}
worlds, with a total of
${populationString}
citizens'
,
other:
'Hello other
\
${count}
worlds, with a total of
\
${populationString}
citizens'
other:
'Hello other
${count}
worlds, with a total of
${populationString}
citizens'
);
);
}
}
return
helloWorlds
(
count
,
populationString
);
return
helloWorlds
(
count
,
populationString
);
...
...
dev/tools/vitool/lib/vitool.dart
View file @
b953c3e5
...
@@ -460,7 +460,7 @@ class _Transform {
...
@@ -460,7 +460,7 @@ class _Transform {
}
}
const
String
_transformCommandAtom
=
' *([^(]+)
\\
(([^)]*)
\
\
)'
;
const
String
_transformCommandAtom
=
r' *([^(]+)\(([^)]*)
\)'
;
final
RegExp
_transformValidator
=
RegExp
(
'^(
$_transformCommandAtom
)*
\$
'
);
final
RegExp
_transformValidator
=
RegExp
(
'^(
$_transformCommandAtom
)*
\$
'
);
final
RegExp
_transformCommand
=
RegExp
(
_transformCommandAtom
);
final
RegExp
_transformCommand
=
RegExp
(
_transformCommandAtom
);
...
@@ -522,7 +522,7 @@ Matrix3 _matrix(double a, double b, double c, double d, double e, double f) {
...
@@ -522,7 +522,7 @@ Matrix3 _matrix(double a, double b, double c, double d, double e, double f) {
// Matches a pixels expression e.g "14px".
// Matches a pixels expression e.g "14px".
// First group is just the number.
// First group is just the number.
final
RegExp
_pixelsExp
=
RegExp
(
'^([0-9]+)px
\
$
'
);
final
RegExp
_pixelsExp
=
RegExp
(
r'^([0-9]+)px
$'
);
/// Parses a pixel expression, e.g "14px", and returns the number.
/// Parses a pixel expression, e.g "14px", and returns the number.
/// Throws an [ArgumentError] if the given string doesn't match the pattern.
/// Throws an [ArgumentError] if the given string doesn't match the pattern.
...
...
dev/tools/vitool/test/vitool_test.dart
View file @
b953c3e5
...
@@ -559,7 +559,7 @@ void main() {
...
@@ -559,7 +559,7 @@ void main() {
),
),
]);
]);
expect
(
animation
.
toDart
(
'_AnimatedIconData'
,
'_
\
$data1
'
),
expect
(
animation
.
toDart
(
'_AnimatedIconData'
,
r'_
$data1'
),
'const _AnimatedIconData _
\
$data1
= const _AnimatedIconData(
\n
'
'const _AnimatedIconData _
\
$data1
= const _AnimatedIconData(
\n
'
' const Size(48.0, 48.0),
\n
'
' const Size(48.0, 48.0),
\n
'
' const <_PathFrames>[
\n
'
' const <_PathFrames>[
\n
'
...
...
examples/flutter_gallery/lib/demo/material/text_form_field_demo.dart
View file @
b953c3e5
...
@@ -250,7 +250,7 @@ class TextFormFieldDemoState extends State<TextFormFieldDemo> {
...
@@ -250,7 +250,7 @@ class TextFormFieldDemoState extends State<TextFormFieldDemo> {
decoration:
const
InputDecoration
(
decoration:
const
InputDecoration
(
border:
OutlineInputBorder
(),
border:
OutlineInputBorder
(),
labelText:
'Salary'
,
labelText:
'Salary'
,
prefixText:
'
\
$
'
,
prefixText:
r'
$'
,
suffixText:
'USD'
,
suffixText:
'USD'
,
suffixStyle:
TextStyle
(
color:
Colors
.
green
),
suffixStyle:
TextStyle
(
color:
Colors
.
green
),
),
),
...
...
packages/flutter/lib/src/foundation/diagnostics.dart
View file @
b953c3e5
...
@@ -1819,7 +1819,7 @@ class StringProperty extends DiagnosticsProperty<String> {
...
@@ -1819,7 +1819,7 @@ class StringProperty extends DiagnosticsProperty<String> {
// Escape linebreaks in multiline strings to avoid confusing output when
// Escape linebreaks in multiline strings to avoid confusing output when
// the parent of this node is trying to display all properties on the same
// the parent of this node is trying to display all properties on the same
// line.
// line.
text
=
text
.
replaceAll
(
'
\n
'
,
'
\
\
n'
);
text
=
text
.
replaceAll
(
'
\n
'
,
r'
\n'
);
}
}
if
(
quoted
&&
text
!=
null
)
{
if
(
quoted
&&
text
!=
null
)
{
...
...
packages/flutter/test/foundation/error_reporting_test.dart
View file @
b953c3e5
...
@@ -70,22 +70,22 @@ Future<void> main() async {
...
@@ -70,22 +70,22 @@ Future<void> main() async {
},
},
));
));
expect
(
console
.
join
(
'
\n
'
),
matches
(
expect
(
console
.
join
(
'
\n
'
),
matches
(
'^══╡ EXCEPTION CAUGHT BY ERROR HANDLING TEST ╞═══════════════════════════════════════════════════════
\n
'
r
'^══╡ EXCEPTION CAUGHT BY ERROR HANDLING TEST ╞═══════════════════════════════════════════════════════\n'
'The following assertion was thrown testing the error handling logic:
\n
'
r
'The following assertion was thrown testing the error handling logic:\n'
'Message goes here
\
\
.
\n
'
r'Message goes here
\.\n'
'
\'
[^
\'
]+flutter/test/foundation/error_reporting_test
\\
.dart
\'
:
\n
'
r"'[^']+flutter/test/foundation/error_reporting_test\.dart':\n"
'Failed assertion: line [0-9]+ pos [0-9]+:
\'
false
\'\n
'
r"Failed assertion: line [0-9]+ pos [0-9]+: 'false'\n"
'
\n
'
r
'\n'
'When the exception was thrown, this was the stack:
\n
'
r
'When the exception was thrown, this was the stack:\n'
'#0 getSampleStack
\\
.<anonymous closure>
\\
([^)]+flutter/test/foundation/error_reporting_test
\\
.dart:[0-9]+:[0-9]+
\
\
)
\n
'
r'#0 getSampleStack\.<anonymous closure> \([^)]+flutter/test/foundation/error_reporting_test\.dart:[0-9]+:[0-9]+
\)\n'
'#2 getSampleStack
\\
([^)]+flutter/test/foundation/error_reporting_test
\\
.dart:[0-9]+:[0-9]+
\
\
)
\n
'
r'#2 getSampleStack \([^)]+flutter/test/foundation/error_reporting_test\.dart:[0-9]+:[0-9]+
\)\n'
'#3 main
\\
([^)]+flutter/test/foundation/error_reporting_test
\\
.dart:[0-9]+:[0-9]+
\
\
)
\n
'
r'#3 main \([^)]+flutter/test/foundation/error_reporting_test\.dart:[0-9]+:[0-9]+
\)\n'
'(.+
\n
)+'
// TODO(ianh): when fixing #4021, also filter out frames from the test infrastructure below the first call to our main()
r
'(.+\n)+'
// TODO(ianh): when fixing #4021, also filter out frames from the test infrastructure below the first call to our main()
'
\\
(elided [0-9]+ frames from class _RawReceivePortImpl and dart:async
\
\
)
\n
'
r'\(elided [0-9]+ frames from class _RawReceivePortImpl and dart:async
\)\n'
'
\n
'
r
'\n'
'line 1 of extra information
\n
'
r
'line 1 of extra information\n'
'line 2 of extra information
\n
'
r
'line 2 of extra information\n'
'════════════════════════════════════════════════════════════════════════════════════════════════════
\
$
'
,
r'════════════════════════════════════════════════════════════════════════════════════════════════════
$'
,
));
));
console
.
clear
();
console
.
clear
();
FlutterError
.
dumpErrorToConsole
(
FlutterErrorDetails
(
FlutterError
.
dumpErrorToConsole
(
FlutterErrorDetails
(
...
@@ -102,16 +102,16 @@ Future<void> main() async {
...
@@ -102,16 +102,16 @@ Future<void> main() async {
exception:
getAssertionErrorWithLongMessage
(),
exception:
getAssertionErrorWithLongMessage
(),
));
));
expect
(
console
.
join
(
'
\n
'
),
matches
(
expect
(
console
.
join
(
'
\n
'
),
matches
(
'^══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞═════════════════════════════════════════════════════════
\n
'
r
'^══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞═════════════════════════════════════════════════════════\n'
'The following assertion was thrown:
\n
'
r
'The following assertion was thrown:\n'
'word word word word word word word word word word word word word word word word word word word word
\n
'
r
'word word word word word word word word word word word word word word word word word word word word\n'
'word word word word word word word word word word word word word word word word word word word word
\n
'
r
'word word word word word word word word word word word word word word word word word word word word\n'
'word word word word word word word word word word word word word word word word word word word word
\n
'
r
'word word word word word word word word word word word word word word word word word word word word\n'
'word word word word word word word word word word word word word word word word word word word word
\n
'
r
'word word word word word word word word word word word word word word word word word word word word\n'
'word word word word word word word word word word word word word word word word word word word word
\n
'
r
'word word word word word word word word word word word word word word word word word word word word\n'
'
\'
[^
\'
]+flutter/test/foundation/error_reporting_test
\\
.dart
\'
:
\n
'
r"'[^']+flutter/test/foundation/error_reporting_test\.dart':\n"
'Failed assertion: line [0-9]+ pos [0-9]+:
\'
false
\'\n
'
r"Failed assertion: line [0-9]+ pos [0-9]+: 'false'\n"
'════════════════════════════════════════════════════════════════════════════════════════════════════
\
$
'
,
r'════════════════════════════════════════════════════════════════════════════════════════════════════
$'
,
));
));
console
.
clear
();
console
.
clear
();
FlutterError
.
dumpErrorToConsole
(
FlutterErrorDetails
(
FlutterError
.
dumpErrorToConsole
(
FlutterErrorDetails
(
...
@@ -143,21 +143,21 @@ Future<void> main() async {
...
@@ -143,21 +143,21 @@ Future<void> main() async {
},
},
));
));
expect
(
console
.
join
(
'
\n
'
),
matches
(
expect
(
console
.
join
(
'
\n
'
),
matches
(
'^══╡ EXCEPTION CAUGHT BY ERROR HANDLING TEST ╞═══════════════════════════════════════════════════════
\n
'
r
'^══╡ EXCEPTION CAUGHT BY ERROR HANDLING TEST ╞═══════════════════════════════════════════════════════\n'
'The following assertion was thrown testing the error handling logic:
\n
'
r
'The following assertion was thrown testing the error handling logic:\n'
'
\'
[^
\'
]+flutter/test/foundation/error_reporting_test
\\
.dart
\'
:[
\n
]'
r"'[^']+flutter/test/foundation/error_reporting_test\.dart':[\n ]"
'Failed[
\n
]assertion:[
\n
]line[
\n
][0-9]+[
\n
]pos[
\n
][0-9]+:[
\n
]
\'
false
\'
:[
\n
]is[
\n
]not[
\n
]true
\\
.
\n
'
r"Failed[\n ]assertion:[\n ]line[\n ][0-9]+[\n ]pos[\n ][0-9]+:[\n ]'false':[\n ]is[\n ]not[\n ]true\.\n"
'
\n
'
r
'\n'
'When the exception was thrown, this was the stack:
\n
'
r
'When the exception was thrown, this was the stack:\n'
'#0 getSampleStack
\\
.<anonymous closure>
\\
([^)]+flutter/test/foundation/error_reporting_test
\\
.dart:[0-9]+:[0-9]+
\
\
)
\n
'
r'#0 getSampleStack\.<anonymous closure> \([^)]+flutter/test/foundation/error_reporting_test\.dart:[0-9]+:[0-9]+
\)\n'
'#2 getSampleStack
\\
([^)]+flutter/test/foundation/error_reporting_test
\\
.dart:[0-9]+:[0-9]+
\
\
)
\n
'
r'#2 getSampleStack \([^)]+flutter/test/foundation/error_reporting_test\.dart:[0-9]+:[0-9]+
\)\n'
'#3 main
\\
([^)]+flutter/test/foundation/error_reporting_test
\\
.dart:[0-9]+:[0-9]+
\
\
)
\n
'
r'#3 main \([^)]+flutter/test/foundation/error_reporting_test\.dart:[0-9]+:[0-9]+
\)\n'
'(.+
\n
)+'
// TODO(ianh): when fixing #4021, also filter out frames from the test infrastructure below the first call to our main()
r
'(.+\n)+'
// TODO(ianh): when fixing #4021, also filter out frames from the test infrastructure below the first call to our main()
'
\\
(elided [0-9]+ frames from class _RawReceivePortImpl and dart:async
\
\
)
\n
'
r'\(elided [0-9]+ frames from class _RawReceivePortImpl and dart:async
\)\n'
'
\n
'
r
'\n'
'line 1 of extra information
\n
'
r
'line 1 of extra information\n'
'line 2 of extra information
\n
'
r
'line 2 of extra information\n'
'════════════════════════════════════════════════════════════════════════════════════════════════════
\
$
'
,
r'════════════════════════════════════════════════════════════════════════════════════════════════════
$'
,
));
));
console
.
clear
();
console
.
clear
();
FlutterError
.
dumpErrorToConsole
(
FlutterErrorDetails
(
FlutterError
.
dumpErrorToConsole
(
FlutterErrorDetails
(
...
@@ -175,11 +175,11 @@ Future<void> main() async {
...
@@ -175,11 +175,11 @@ Future<void> main() async {
exception:
exception
,
exception:
exception
,
));
));
expect
(
console
.
join
(
'
\n
'
),
matches
(
expect
(
console
.
join
(
'
\n
'
),
matches
(
'^══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞═════════════════════════════════════════════════════════
\n
'
r
'^══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞═════════════════════════════════════════════════════════\n'
'The following NoSuchMethodError was thrown:
\n
'
r
'The following NoSuchMethodError was thrown:\n'
'Receiver: 5
\n
'
r
'Receiver: 5\n'
'Tried calling: foo = 2, 4
\n
'
r
'Tried calling: foo = 2, 4\n'
'════════════════════════════════════════════════════════════════════════════════════════════════════
\
$
'
,
r'════════════════════════════════════════════════════════════════════════════════════════════════════
$'
,
));
));
console
.
clear
();
console
.
clear
();
FlutterError
.
dumpErrorToConsole
(
FlutterErrorDetails
(
FlutterError
.
dumpErrorToConsole
(
FlutterErrorDetails
(
...
@@ -196,10 +196,10 @@ Future<void> main() async {
...
@@ -196,10 +196,10 @@ Future<void> main() async {
exception:
'hello'
,
exception:
'hello'
,
));
));
expect
(
console
.
join
(
'
\n
'
),
matches
(
expect
(
console
.
join
(
'
\n
'
),
matches
(
'^══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞═════════════════════════════════════════════════════════
\n
'
r
'^══╡ EXCEPTION CAUGHT BY FLUTTER FRAMEWORK ╞═════════════════════════════════════════════════════════\n'
'The following message was thrown:
\n
'
r
'The following message was thrown:\n'
'hello
\n
'
r
'hello\n'
'════════════════════════════════════════════════════════════════════════════════════════════════════
\
$
'
,
r'════════════════════════════════════════════════════════════════════════════════════════════════════
$'
,
));
));
console
.
clear
();
console
.
clear
();
FlutterError
.
dumpErrorToConsole
(
const
FlutterErrorDetails
(
FlutterError
.
dumpErrorToConsole
(
const
FlutterErrorDetails
(
...
...
packages/flutter/test/widgets/text_test.dart
View file @
b953c3e5
...
@@ -165,7 +165,7 @@ void main() {
...
@@ -165,7 +165,7 @@ void main() {
final
SemanticsTester
semantics
=
SemanticsTester
(
tester
);
final
SemanticsTester
semantics
=
SemanticsTester
(
tester
);
await
tester
.
pumpWidget
(
await
tester
.
pumpWidget
(
const
Text
(
const
Text
(
'
\$\
$
'
,
r'$
$'
,
semanticsLabel:
'Double dollars'
,
semanticsLabel:
'Double dollars'
,
textDirection:
TextDirection
.
ltr
,
textDirection:
TextDirection
.
ltr
,
)
)
...
@@ -191,7 +191,7 @@ void main() {
...
@@ -191,7 +191,7 @@ void main() {
await
tester
.
pumpWidget
(
await
tester
.
pumpWidget
(
const
Directionality
(
const
Directionality
(
textDirection:
TextDirection
.
ltr
,
textDirection:
TextDirection
.
ltr
,
child:
Text
(
'
\$\
$
'
,
semanticsLabel:
'Double dollars'
)),
child:
Text
(
r'$
$'
,
semanticsLabel:
'Double dollars'
)),
);
);
expect
(
expect
(
...
...
packages/flutter_driver/lib/src/driver/web_driver.dart
View file @
b953c3e5
...
@@ -212,17 +212,18 @@ class FlutterWebConnection {
...
@@ -212,17 +212,18 @@ class FlutterWebConnection {
}
}
try
{
try
{
result
=
await
waitFor
<
dynamic
>(
()
=>
_driver
.
execute
(
'r'
result
=
await
waitFor
<
dynamic
>(
'eturn
\
$flutterDriverResult
'
,
<
String
>[]),
()
=>
_driver
.
execute
(
r'return
$flutterDriverResult'
,
<
String
>[]),
matcher:
isNotNull
,
matcher:
isNotNull
,
timeout:
duration
??
const
Duration
(
days:
30
));
timeout:
duration
??
const
Duration
(
days:
30
),
);
}
catch
(
_
)
{
}
catch
(
_
)
{
// Returns null if exception thrown.
// Returns null if exception thrown.
return
null
;
return
null
;
}
finally
{
}
finally
{
// Resets the result.
// Resets the result.
_driver
.
execute
(
'''
_driver
.
execute
(
r
''
'
\
$flutterDriverResult
= null
$flutterDriverResult
= null
'''
,
<
void
>[]);
'''
,
<
void
>[]);
}
}
return
result
;
return
result
;
...
@@ -243,7 +244,7 @@ class FlutterWebConnection {
...
@@ -243,7 +244,7 @@ class FlutterWebConnection {
/// Waits until extension is installed.
/// Waits until extension is installed.
Future
<
void
>
waitUntilExtensionInstalled
(
sync_io
.
WebDriver
driver
,
Duration
timeout
)
async
{
Future
<
void
>
waitUntilExtensionInstalled
(
sync_io
.
WebDriver
driver
,
Duration
timeout
)
async
{
await
waitFor
<
void
>(()
=>
await
waitFor
<
void
>(()
=>
driver
.
execute
(
'return typeof(window.
\
$flutterDriver
)'
,
<
String
>[]),
driver
.
execute
(
r'return typeof(window.
$flutterDriver)'
,
<
String
>[]),
matcher:
'function'
,
matcher:
'function'
,
timeout:
timeout
??
const
Duration
(
days:
365
));
timeout:
timeout
??
const
Duration
(
days:
365
));
}
}
...
...
packages/flutter_driver/lib/src/extension/_extension_web.dart
View file @
b953c3e5
...
@@ -19,12 +19,12 @@ import 'dart:js_util' as js_util;
...
@@ -19,12 +19,12 @@ import 'dart:js_util' as js_util;
///
///
/// * [_extension_io.dart], which has the dart:io implementation
/// * [_extension_io.dart], which has the dart:io implementation
void
registerWebServiceExtension
(
Future
<
Map
<
String
,
dynamic
>>
Function
(
Map
<
String
,
String
>)
call
)
{
void
registerWebServiceExtension
(
Future
<
Map
<
String
,
dynamic
>>
Function
(
Map
<
String
,
String
>)
call
)
{
js_util
.
setProperty
(
html
.
window
,
'
\
$flutterDriver
'
,
allowInterop
((
dynamic
message
)
async
{
js_util
.
setProperty
(
html
.
window
,
r'
$flutterDriver'
,
allowInterop
((
dynamic
message
)
async
{
// ignore: undefined_function, undefined_identifier
// ignore: undefined_function, undefined_identifier
final
Map
<
String
,
String
>
params
=
Map
<
String
,
String
>.
from
(
final
Map
<
String
,
String
>
params
=
Map
<
String
,
String
>.
from
(
jsonDecode
(
message
as
String
)
as
Map
<
String
,
dynamic
>);
jsonDecode
(
message
as
String
)
as
Map
<
String
,
dynamic
>);
final
Map
<
String
,
dynamic
>
result
=
Map
<
String
,
dynamic
>.
from
(
final
Map
<
String
,
dynamic
>
result
=
Map
<
String
,
dynamic
>.
from
(
await
call
(
params
));
await
call
(
params
));
context
[
'
\
$flutterDriverResult
'
]
=
json
.
encode
(
result
);
context
[
r'
$flutterDriverResult'
]
=
json
.
encode
(
result
);
}));
}));
}
}
packages/flutter_driver/test/src/web_tests/web_extension_test.dart
View file @
b953c3e5
...
@@ -20,7 +20,7 @@ void main() {
...
@@ -20,7 +20,7 @@ void main() {
test
(
'web_extension should register a function'
,
()
{
test
(
'web_extension should register a function'
,
()
{
expect
(()
=>
registerWebServiceExtension
(
call
),
expect
(()
=>
registerWebServiceExtension
(
call
),
returnsNormally
);
returnsNormally
);
expect
(
js
.
context
.
hasProperty
(
'
\
$flutterDriver
'
),
true
);
expect
(
js
.
context
.
hasProperty
(
r'
$flutterDriver'
),
true
);
});
});
});
});
}
}
packages/flutter_tools/lib/src/base/file_system.dart
View file @
b953c3e5
...
@@ -114,7 +114,7 @@ class FileSystemUtils {
...
@@ -114,7 +114,7 @@ class FileSystemUtils {
///
///
/// On Windows it replaces all '\' with '\\'. On other platforms, it returns the
/// On Windows it replaces all '\' with '\\'. On other platforms, it returns the
/// path unchanged.
/// path unchanged.
String
escapePath
(
String
path
)
=>
_platform
.
isWindows
?
path
.
replaceAll
(
'
\\
'
,
'
\\
\\
'
)
:
path
;
String
escapePath
(
String
path
)
=>
_platform
.
isWindows
?
path
.
replaceAll
(
r'\'
,
r'
\\'
)
:
path
;
/// Returns true if the file system [entity] has not been modified since the
/// Returns true if the file system [entity] has not been modified since the
/// latest modification to [referenceFile].
/// latest modification to [referenceFile].
...
...
packages/flutter_tools/lib/src/project.dart
View file @
b953c3e5
...
@@ -409,7 +409,7 @@ class IosProject extends FlutterProjectPlatform implements XcodeBasedProject {
...
@@ -409,7 +409,7 @@ class IosProject extends FlutterProjectPlatform implements XcodeBasedProject {
} on FileNotFoundException {
} on FileNotFoundException {
// iOS tooling not found; likely not running OSX; let [fromPlist] be null
// iOS tooling not found; likely not running OSX; let [fromPlist] be null
}
}
if (fromPlist != null && !fromPlist.contains(
'
\
$
')) {
if (fromPlist != null && !fromPlist.contains(
r'
$
')) {
// Info.plist has no build variables in product bundle ID.
// Info.plist has no build variables in product bundle ID.
return fromPlist;
return fromPlist;
}
}
...
...
packages/flutter_tools/lib/src/vscode/vscode.dart
View file @
b953c3e5
...
@@ -163,7 +163,7 @@ class VsCode {
...
@@ -163,7 +163,7 @@ class VsCode {
if
(
localAppData
!=
null
)
{
if
(
localAppData
!=
null
)
{
searchLocations
.
add
(
_VsCodeInstallLocation
(
searchLocations
.
add
(
_VsCodeInstallLocation
(
globals
.
fs
.
path
.
join
(
localAppData
,
'Programs
\
\
Microsoft VS Code'
),
globals
.
fs
.
path
.
join
(
localAppData
,
r'Programs
\Microsoft VS Code'
),
'.vscode'
,
'.vscode'
,
));
));
}
}
...
@@ -179,7 +179,7 @@ class VsCode {
...
@@ -179,7 +179,7 @@ class VsCode {
));
));
if
(
localAppData
!=
null
)
{
if
(
localAppData
!=
null
)
{
searchLocations
.
add
(
_VsCodeInstallLocation
(
searchLocations
.
add
(
_VsCodeInstallLocation
(
globals
.
fs
.
path
.
join
(
localAppData
,
'Programs
\
\
Microsoft VS Code Insiders'
),
globals
.
fs
.
path
.
join
(
localAppData
,
r'Programs
\Microsoft VS Code Insiders'
),
'.vscode-insiders'
,
'.vscode-insiders'
,
isInsiders:
true
,
isInsiders:
true
,
));
));
...
...
packages/flutter_tools/lib/src/web/web_device.dart
View file @
b953c3e5
...
@@ -100,7 +100,7 @@ class ChromeDevice extends Device {
...
@@ -100,7 +100,7 @@ class ChromeDevice extends Device {
String
version
=
'unknown'
;
String
version
=
'unknown'
;
if
(
globals
.
platform
.
isWindows
)
{
if
(
globals
.
platform
.
isWindows
)
{
final
ProcessResult
result
=
await
globals
.
processManager
.
run
(<
String
>[
final
ProcessResult
result
=
await
globals
.
processManager
.
run
(<
String
>[
r'reg'
,
'query'
,
'HKEY_CURRENT_USER
\\
Software
\\
Google
\\
Chrome
\
\
BLBeacon'
,
'/v'
,
'version'
,
r'reg'
,
'query'
,
r'HKEY_CURRENT_USER\Software\Google\Chrome
\BLBeacon'
,
'/v'
,
'version'
,
]);
]);
if
(
result
.
exitCode
==
0
)
{
if
(
result
.
exitCode
==
0
)
{
final
List
<
String
>
parts
=
(
result
.
stdout
as
String
).
split
(
RegExp
(
r'\s+'
));
final
List
<
String
>
parts
=
(
result
.
stdout
as
String
).
split
(
RegExp
(
r'\s+'
));
...
...
packages/flutter_tools/test/commands.shard/permeable/analyze_once_test.dart
View file @
b953c3e5
...
@@ -37,7 +37,7 @@ void main() {
...
@@ -37,7 +37,7 @@ void main() {
if
(
globals
.
platform
.
isWindows
)
{
if
(
globals
.
platform
.
isWindows
)
{
flutterRootUri
flutterRootUri
..
write
(
'/'
)
..
write
(
'/'
)
..
write
(
canonicalizedFlutterRootPath
.
replaceAll
(
'
\
\
'
,
'/'
));
..
write
(
canonicalizedFlutterRootPath
.
replaceAll
(
r'
\'
,
'/'
));
}
else
{
}
else
{
flutterRootUri
.
write
(
canonicalizedFlutterRootPath
);
flutterRootUri
.
write
(
canonicalizedFlutterRootPath
);
}
}
...
...
packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart
View file @
b953c3e5
...
@@ -40,15 +40,15 @@ void main() {
...
@@ -40,15 +40,15 @@ void main() {
group
(
'network errors'
,
()
{
group
(
'network errors'
,
()
{
testUsingContext
(
'retries if gradle fails while downloading'
,
()
async
{
testUsingContext
(
'retries if gradle fails while downloading'
,
()
async
{
const
String
errorMessage
=
'''
const
String
errorMessage
=
r
''
'
Exception in thread "main" java.io.FileNotFoundException: https://downloads.gradle.org/distributions/gradle-4.1.1-all.zip
Exception in thread "main" java.io.FileNotFoundException: https://downloads.gradle.org/distributions/gradle-4.1.1-all.zip
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1872)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1872)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at org.gradle.wrapper.Download.downloadInternal(Download.java:58)
at org.gradle.wrapper.Download.downloadInternal(Download.java:58)
at org.gradle.wrapper.Download.download(Download.java:44)
at org.gradle.wrapper.Download.download(Download.java:44)
at org.gradle.wrapper.Install
\
$
1.call(Install.java:61)
at org.gradle.wrapper.Install
$
1.call(Install.java:61)
at org.gradle.wrapper.Install
\
$
1.call(Install.java:48)
at org.gradle.wrapper.Install
$
1.call(Install.java:48)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.Install.createDist(Install.java:48)
at org.gradle.wrapper.Install.createDist(Install.java:48)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
...
@@ -66,7 +66,7 @@ at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)''';
...
@@ -66,7 +66,7 @@ at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)''';
});
});
testUsingContext
(
'retries if gradle fails downloading with proxy error'
,
()
async
{
testUsingContext
(
'retries if gradle fails downloading with proxy error'
,
()
async
{
const
String
errorMessage
=
'''
const
String
errorMessage
=
r
''
'
Exception in thread "main" java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"
Exception in thread "main" java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2124)
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2124)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183)
...
@@ -75,8 +75,8 @@ at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.
...
@@ -75,8 +75,8 @@ at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
at org.gradle.wrapper.Download.downloadInternal(Download.java:58)
at org.gradle.wrapper.Download.downloadInternal(Download.java:58)
at org.gradle.wrapper.Download.download(Download.java:44)
at org.gradle.wrapper.Download.download(Download.java:44)
at org.gradle.wrapper.Install
\
$
1.call(Install.java:61)
at org.gradle.wrapper.Install
$
1.call(Install.java:61)
at org.gradle.wrapper.Install
\
$
1.call(Install.java:48)
at org.gradle.wrapper.Install
$
1.call(Install.java:48)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.Install.createDist(Install.java:48)
at org.gradle.wrapper.Install.createDist(Install.java:48)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
...
@@ -113,7 +113,7 @@ Exception in thread "main" java.lang.RuntimeException: Timeout of 120000 reached
...
@@ -113,7 +113,7 @@ Exception in thread "main" java.lang.RuntimeException: Timeout of 120000 reached
});
});
testUsingContext
(
'retries if remote host closes connection'
,
()
async
{
testUsingContext
(
'retries if remote host closes connection'
,
()
async
{
const
String
errorMessage
=
'''
const
String
errorMessage
=
r
''
'
Downloading https://services.gradle.org/distributions/gradle-5.6.2-all.zip
Downloading https://services.gradle.org/distributions/gradle-5.6.2-all.zip
Exception in thread "main" javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
Exception in thread "main" javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:994)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:994)
...
@@ -129,8 +129,8 @@ Exception in thread "main" javax.net.ssl.SSLHandshakeException: Remote host clos
...
@@ -129,8 +129,8 @@ Exception in thread "main" javax.net.ssl.SSLHandshakeException: Remote host clos
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
at org.gradle.wrapper.Download.downloadInternal(Download.java:58)
at org.gradle.wrapper.Download.downloadInternal(Download.java:58)
at org.gradle.wrapper.Download.download(Download.java:44)
at org.gradle.wrapper.Download.download(Download.java:44)
at org.gradle.wrapper.Install
\
$
1.call(Install.java:61)
at org.gradle.wrapper.Install
$
1.call(Install.java:61)
at org.gradle.wrapper.Install
\
$
1.call(Install.java:48)
at org.gradle.wrapper.Install
$
1.call(Install.java:48)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.Install.createDist(Install.java:48)
at org.gradle.wrapper.Install.createDist(Install.java:48)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
...
@@ -175,7 +175,7 @@ Exception in thread "main" java.io.FileNotFoundException: https://downloads.grad
...
@@ -175,7 +175,7 @@ Exception in thread "main" java.io.FileNotFoundException: https://downloads.grad
});
});
testUsingContext
(
'retries if the connection is reset'
,
()
async
{
testUsingContext
(
'retries if the connection is reset'
,
()
async
{
const
String
errorMessage
=
'''
const
String
errorMessage
=
r
''
'
Downloading https://services.gradle.org/distributions/gradle-5.6.2-all.zip
Downloading https://services.gradle.org/distributions/gradle-5.6.2-all.zip
Exception in thread "main" java.net.SocketException: Connection reset
Exception in thread "main" java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:210)
at java.net.SocketInputStream.read(SocketInputStream.java:210)
...
@@ -194,8 +194,8 @@ Exception in thread "main" java.net.SocketException: Connection reset
...
@@ -194,8 +194,8 @@ Exception in thread "main" java.net.SocketException: Connection reset
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:263)
at org.gradle.wrapper.Download.downloadInternal(Download.java:58)
at org.gradle.wrapper.Download.downloadInternal(Download.java:58)
at org.gradle.wrapper.Download.download(Download.java:44)
at org.gradle.wrapper.Download.download(Download.java:44)
at org.gradle.wrapper.Install
\
$
1.call(Install.java:61)
at org.gradle.wrapper.Install
$
1.call(Install.java:61)
at org.gradle.wrapper.Install
\
$
1.call(Install.java:48)
at org.gradle.wrapper.Install
$
1.call(Install.java:48)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:65)
at org.gradle.wrapper.Install.createDist(Install.java:48)
at org.gradle.wrapper.Install.createDist(Install.java:48)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:128)
...
...
packages/flutter_tools/test/general.shard/android/gradle_test.dart
View file @
b953c3e5
...
@@ -457,7 +457,7 @@ void main() {
...
@@ -457,7 +457,7 @@ void main() {
});
});
testUsingContext
(
'create settings_aar.gradle when current settings.gradle loads plugins'
,
()
{
testUsingContext
(
'create settings_aar.gradle when current settings.gradle loads plugins'
,
()
{
const
String
currentSettingsGradle
=
'''
const
String
currentSettingsGradle
=
r
''
'
include '
:
app
'
include '
:
app
'
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
...
@@ -470,8 +470,8 @@ if (pluginsFile.exists()) {
...
@@ -470,8 +470,8 @@ if (pluginsFile.exists()) {
plugins.each { name, path ->
plugins.each { name, path ->
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('
android
').toFile()
def pluginDirectory = flutterProjectRoot.resolve(path).resolve('
android
').toFile()
include ":
\
$name
"
include ":
$name
"
project(":
\
$name
").projectDir = pluginDirectory
project(":
$name
").projectDir = pluginDirectory
}
}
'''
;
'''
;
...
...
packages/flutter_tools/test/general.shard/base/file_system_test.dart
View file @
b953c3e5
...
@@ -105,8 +105,8 @@ void main() {
...
@@ -105,8 +105,8 @@ void main() {
fileSystem:
fileSystem
,
fileSystem:
fileSystem
,
platform:
FakePlatform
(
operatingSystem:
'windows'
),
platform:
FakePlatform
(
operatingSystem:
'windows'
),
);
);
expect
(
fsUtils
.
escapePath
(
'C:
\\
foo
\\
bar
\\
cool.dart'
),
'C:
\\\\
foo
\\\\
bar
\\
\\
cool.dart'
);
expect
(
fsUtils
.
escapePath
(
r'C:\foo\bar\cool.dart'
),
r'C:\\foo\\bar
\\cool.dart'
);
expect
(
fsUtils
.
escapePath
(
'foo
\\
bar
\\
cool.dart'
),
'foo
\\\\
bar
\\
\\
cool.dart'
);
expect
(
fsUtils
.
escapePath
(
r'foo\bar\cool.dart'
),
r'foo\\bar
\\cool.dart'
);
expect
(
fsUtils
.
escapePath
(
'C:/foo/bar/cool.dart'
),
'C:/foo/bar/cool.dart'
);
expect
(
fsUtils
.
escapePath
(
'C:/foo/bar/cool.dart'
),
'C:/foo/bar/cool.dart'
);
});
});
...
@@ -118,7 +118,7 @@ void main() {
...
@@ -118,7 +118,7 @@ void main() {
);
);
expect
(
fsUtils
.
escapePath
(
'/foo/bar/cool.dart'
),
'/foo/bar/cool.dart'
);
expect
(
fsUtils
.
escapePath
(
'/foo/bar/cool.dart'
),
'/foo/bar/cool.dart'
);
expect
(
fsUtils
.
escapePath
(
'foo/bar/cool.dart'
),
'foo/bar/cool.dart'
);
expect
(
fsUtils
.
escapePath
(
'foo/bar/cool.dart'
),
'foo/bar/cool.dart'
);
expect
(
fsUtils
.
escapePath
(
'foo
\\
cool.dart'
),
'foo
\
\
cool.dart'
);
expect
(
fsUtils
.
escapePath
(
r'foo\cool.dart'
),
r'foo
\cool.dart'
);
});
});
});
});
}
}
packages/flutter_tools/test/general.shard/base/logger_test.dart
View file @
b953c3e5
...
@@ -282,7 +282,7 @@ void main() {
...
@@ -282,7 +282,7 @@ void main() {
);
);
logger
.
printStatus
(
'Rude Interrupting Cow'
);
logger
.
printStatus
(
'Rude Interrupting Cow'
);
status
.
stop
();
status
.
stop
();
final
String
a
=
currentPlatform
().
isWindows
?
'
\
\
'
:
'⣽'
;
final
String
a
=
currentPlatform
().
isWindows
?
r'
\'
:
'⣽'
;
final
String
b
=
currentPlatform
().
isWindows
?
'|'
:
'⣻'
;
final
String
b
=
currentPlatform
().
isWindows
?
'|'
:
'⣻'
;
expect
(
expect
(
...
...
packages/flutter_tools/test/general.shard/compile_incremental_test.dart
View file @
b953c3e5
...
@@ -126,13 +126,13 @@ void main() {
...
@@ -126,13 +126,13 @@ void main() {
await
_recompile
(
streamController
,
generator
,
mockFrontendServerStdIn
,
await
_recompile
(
streamController
,
generator
,
mockFrontendServerStdIn
,
'result abc
\n
line1
\n
line2
\n
abc
\n
abc /path/to/main.dart.dill 0
\n
'
);
'result abc
\n
line1
\n
line2
\n
abc
\n
abc /path/to/main.dart.dill 0
\n
'
);
await
_accept
(
streamController
,
generator
,
mockFrontendServerStdIn
,
'^accept
\\
n
\
$
'
);
await
_accept
(
streamController
,
generator
,
mockFrontendServerStdIn
,
r'^accept\n
$'
);
await
_recompile
(
streamController
,
generator
,
mockFrontendServerStdIn
,
await
_recompile
(
streamController
,
generator
,
mockFrontendServerStdIn
,
'result abc
\n
line1
\n
line2
\n
abc
\n
abc /path/to/main.dart.dill 0
\n
'
);
'result abc
\n
line1
\n
line2
\n
abc
\n
abc /path/to/main.dart.dill 0
\n
'
);
// No sources returned from reject command.
// No sources returned from reject command.
await
_reject
(
streamController
,
generator
,
mockFrontendServerStdIn
,
'result abc
\n
abc
\n
'
,
await
_reject
(
streamController
,
generator
,
mockFrontendServerStdIn
,
'result abc
\n
abc
\n
'
,
'^reject
\\
n
\
$
'
);
r'^reject\n
$'
);
verifyNoMoreInteractions
(
mockFrontendServerStdIn
);
verifyNoMoreInteractions
(
mockFrontendServerStdIn
);
expect
(
mockFrontendServerStdIn
.
getAndClear
(),
isEmpty
);
expect
(
mockFrontendServerStdIn
.
getAndClear
(),
isEmpty
);
expect
(
testLogger
.
errorText
,
equals
(
expect
(
testLogger
.
errorText
,
equals
(
...
@@ -193,7 +193,7 @@ Future<void> _recompile(
...
@@ -193,7 +193,7 @@ Future<void> _recompile(
);
);
expect
(
output
.
outputFilename
,
equals
(
'/path/to/main.dart.dill'
));
expect
(
output
.
outputFilename
,
equals
(
'/path/to/main.dart.dill'
));
final
String
commands
=
mockFrontendServerStdIn
.
getAndClear
();
final
String
commands
=
mockFrontendServerStdIn
.
getAndClear
();
final
RegExp
re
=
RegExp
(
'^recompile (.*)
\\
n/path/to/main.dart
\\
n(.*)
\\
n
\
$
'
);
final
RegExp
re
=
RegExp
(
r'^recompile (.*)\n/path/to/main.dart\n(.*)\n
$'
);
expect
(
commands
,
matches
(
re
));
expect
(
commands
,
matches
(
re
));
final
Match
match
=
re
.
firstMatch
(
commands
);
final
Match
match
=
re
.
firstMatch
(
commands
);
expect
(
match
[
1
]
==
match
[
2
],
isTrue
);
expect
(
match
[
1
]
==
match
[
2
],
isTrue
);
...
...
packages/flutter_tools/test/general.shard/project_test.dart
View file @
b953c3e5
...
@@ -388,7 +388,7 @@ apply plugin: 'kotlin-android'
...
@@ -388,7 +388,7 @@ apply plugin: 'kotlin-android'
});
});
}
}
);
);
when
(
mockPlistUtils
.
getValueFromFile
(
any
,
any
)).
thenReturn
(
'
\
$
(PRODUCT_BUNDLE_IDENTIFIER)'
);
when
(
mockPlistUtils
.
getValueFromFile
(
any
,
any
)).
thenReturn
(
r'
$(PRODUCT_BUNDLE_IDENTIFIER)'
);
expect
(
await
project
.
ios
.
productBundleIdentifier
,
'io.flutter.someProject'
);
expect
(
await
project
.
ios
.
productBundleIdentifier
,
'io.flutter.someProject'
);
});
});
...
@@ -403,7 +403,7 @@ apply plugin: 'kotlin-android'
...
@@ -403,7 +403,7 @@ apply plugin: 'kotlin-android'
});
});
}
}
);
);
when
(
mockPlistUtils
.
getValueFromFile
(
any
,
any
)).
thenReturn
(
'
\$
(PRODUCT_BUNDLE_IDENTIFIER).
\
$
(SUFFIX)'
);
when
(
mockPlistUtils
.
getValueFromFile
(
any
,
any
)).
thenReturn
(
r'$(PRODUCT_BUNDLE_IDENTIFIER).
$(SUFFIX)'
);
expect
(
await
project
.
ios
.
productBundleIdentifier
,
'io.flutter.someProject.suffix'
);
expect
(
await
project
.
ios
.
productBundleIdentifier
,
'io.flutter.someProject.suffix'
);
});
});
testWithMocks
(
'empty surrounded by quotes'
,
()
async
{
testWithMocks
(
'empty surrounded by quotes'
,
()
async
{
...
...
packages/flutter_tools/test/general.shard/web/devices_test.dart
View file @
b953c3e5
...
@@ -117,7 +117,7 @@ void main() {
...
@@ -117,7 +117,7 @@ void main() {
when
(
mockProcessManager
.
run
(<
String
>[
when
(
mockProcessManager
.
run
(<
String
>[
'reg'
,
'reg'
,
'query'
,
'query'
,
'HKEY_CURRENT_USER
\\
Software
\\
Google
\\
Chrome
\
\
BLBeacon'
,
r'HKEY_CURRENT_USER\Software\Google\Chrome
\BLBeacon'
,
'/v'
,
'/v'
,
'version'
,
'version'
,
])).
thenAnswer
((
Invocation
invocation
)
async
{
])).
thenAnswer
((
Invocation
invocation
)
async
{
...
...
packages/fuchsia_remote_debug_protocol/lib/src/fuchsia_remote_connection.dart
View file @
b953c3e5
...
@@ -196,7 +196,7 @@ class FuchsiaRemoteConnection {
...
@@ -196,7 +196,7 @@ class FuchsiaRemoteConnection {
sshConfigPath
??=
Platform
.
environment
[
'FUCHSIA_SSH_CONFIG'
];
sshConfigPath
??=
Platform
.
environment
[
'FUCHSIA_SSH_CONFIG'
];
if
(
address
==
null
)
{
if
(
address
==
null
)
{
throw
FuchsiaRemoteConnectionError
(
throw
FuchsiaRemoteConnectionError
(
'No address supplied, and
\
$FUCHSIA_DEVICE_URL
not found.'
);
r'No address supplied, and
$FUCHSIA_DEVICE_URL not found.'
);
}
}
const
String
interfaceDelimiter
=
'%'
;
const
String
interfaceDelimiter
=
'%'
;
if
(
address
.
contains
(
interfaceDelimiter
))
{
if
(
address
.
contains
(
interfaceDelimiter
))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment