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
09bb07f8
Unverified
Commit
09bb07f8
authored
Sep 13, 2019
by
Francisco Magdaleno
Committed by
GitHub
Sep 13, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adds list required components when VS is not installed (#40397)
parent
18ffb0fb
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
8 deletions
+20
-8
user_messages.dart
packages/flutter_tools/lib/src/base/user_messages.dart
+3
-2
visual_studio_validator.dart
...lutter_tools/lib/src/windows/visual_studio_validator.dart
+8
-2
visual_studio_validator_test.dart
...t/general.shard/windows/visual_studio_validator_test.dart
+9
-4
No files found.
packages/flutter_tools/lib/src/base/user_messages.dart
View file @
09bb07f8
...
@@ -190,9 +190,10 @@ class UserMessages {
...
@@ -190,9 +190,10 @@ class UserMessages {
'Visual Studio is missing necessary components. Please re-run the '
'Visual Studio is missing necessary components. Please re-run the '
'Visual Studio installer for the "
$workload
" workload, and include these components:
\n
'
'Visual Studio installer for the "
$workload
" workload, and include these components:
\n
'
'
${components.join('\n ')}
'
;
'
${components.join('\n ')}
'
;
String
get
visualStudioMissing
=>
String
visualStudioMissing
(
String
workload
,
List
<
String
>
components
)
=>
'Visual Studio not installed; this is necessary for Windows development.
\n
'
'Visual Studio not installed; this is necessary for Windows development.
\n
'
'Download at https://visualstudio.microsoft.com/downloads/.'
;
'Download at https://visualstudio.microsoft.com/downloads/.
\n
'
'Please install the "
$workload
" workload, including following components:
\n
${components.join('\n ')}
'
;
String
get
visualStudioIsPrerelease
=>
'The current Visual Studio installation is a pre-release version. It may not be '
String
get
visualStudioIsPrerelease
=>
'The current Visual Studio installation is a pre-release version. It may not be '
'supported by Flutter yet.'
;
'supported by Flutter yet.'
;
String
get
visualStudioNotLaunchable
=>
String
get
visualStudioNotLaunchable
=>
...
...
packages/flutter_tools/lib/src/windows/visual_studio_validator.dart
View file @
09bb07f8
...
@@ -12,6 +12,8 @@ VisualStudioValidator get visualStudioValidator => context.get<VisualStudioValid
...
@@ -12,6 +12,8 @@ VisualStudioValidator get visualStudioValidator => context.get<VisualStudioValid
class
VisualStudioValidator
extends
DoctorValidator
{
class
VisualStudioValidator
extends
DoctorValidator
{
const
VisualStudioValidator
()
:
super
(
'Visual Studio - develop for Windows'
);
const
VisualStudioValidator
()
:
super
(
'Visual Studio - develop for Windows'
);
int
get
majorVersion
=>
int
.
tryParse
(
visualStudio
.
fullVersion
.
split
(
'.'
)[
0
]);
@override
@override
Future
<
ValidationResult
>
validate
()
async
{
Future
<
ValidationResult
>
validate
()
async
{
final
List
<
ValidationMessage
>
messages
=
<
ValidationMessage
>[];
final
List
<
ValidationMessage
>
messages
=
<
ValidationMessage
>[];
...
@@ -46,7 +48,6 @@ class VisualStudioValidator extends DoctorValidator {
...
@@ -46,7 +48,6 @@ class VisualStudioValidator extends DoctorValidator {
messages
.
add
(
ValidationMessage
.
error
(
userMessages
.
visualStudioNotLaunchable
));
messages
.
add
(
ValidationMessage
.
error
(
userMessages
.
visualStudioNotLaunchable
));
}
else
if
(!
visualStudio
.
hasNecessaryComponents
)
{
}
else
if
(!
visualStudio
.
hasNecessaryComponents
)
{
status
=
ValidationType
.
partial
;
status
=
ValidationType
.
partial
;
final
int
majorVersion
=
int
.
tryParse
(
visualStudio
.
fullVersion
.
split
(
'.'
)[
0
]);
messages
.
add
(
ValidationMessage
.
error
(
messages
.
add
(
ValidationMessage
.
error
(
userMessages
.
visualStudioMissingComponents
(
userMessages
.
visualStudioMissingComponents
(
visualStudio
.
workloadDescription
,
visualStudio
.
workloadDescription
,
...
@@ -57,7 +58,12 @@ class VisualStudioValidator extends DoctorValidator {
...
@@ -57,7 +58,12 @@ class VisualStudioValidator extends DoctorValidator {
versionInfo
=
'
${visualStudio.displayName}
${visualStudio.displayVersion}
'
;
versionInfo
=
'
${visualStudio.displayName}
${visualStudio.displayVersion}
'
;
}
else
{
}
else
{
status
=
ValidationType
.
missing
;
status
=
ValidationType
.
missing
;
messages
.
add
(
ValidationMessage
.
error
(
userMessages
.
visualStudioMissing
));
messages
.
add
(
ValidationMessage
.
error
(
userMessages
.
visualStudioMissing
(
visualStudio
.
workloadDescription
,
visualStudio
.
necessaryComponentDescriptions
(
majorVersion
)
)
));
}
}
return
ValidationResult
(
status
,
messages
,
statusInfo:
versionInfo
);
return
ValidationResult
(
status
,
messages
,
statusInfo:
versionInfo
);
...
...
packages/flutter_tools/test/general.shard/windows/visual_studio_validator_test.dart
View file @
09bb07f8
...
@@ -26,6 +26,9 @@ void main() {
...
@@ -26,6 +26,9 @@ void main() {
when
(
mockVisualStudio
.
isLaunchable
).
thenReturn
(
true
);
when
(
mockVisualStudio
.
isLaunchable
).
thenReturn
(
true
);
when
(
mockVisualStudio
.
isRebootRequired
).
thenReturn
(
false
);
when
(
mockVisualStudio
.
isRebootRequired
).
thenReturn
(
false
);
when
(
mockVisualStudio
.
hasNecessaryComponents
).
thenReturn
(
true
);
when
(
mockVisualStudio
.
hasNecessaryComponents
).
thenReturn
(
true
);
when
(
mockVisualStudio
.
workloadDescription
).
thenReturn
(
'Desktop development'
);
when
(
mockVisualStudio
.
necessaryComponentDescriptions
(
any
)).
thenReturn
(<
String
>[
'A'
,
'B'
]);
when
(
mockVisualStudio
.
fullVersion
).
thenReturn
(
'15.1'
);
});
});
testUsingContext
(
'Emits a message when Visual Studio is a pre-release version'
,
()
async
{
testUsingContext
(
'Emits a message when Visual Studio is a pre-release version'
,
()
async
{
...
@@ -87,9 +90,6 @@ void main() {
...
@@ -87,9 +90,6 @@ void main() {
testUsingContext
(
'Emits partial status when Visual Studio is installed without necessary components'
,
()
async
{
testUsingContext
(
'Emits partial status when Visual Studio is installed without necessary components'
,
()
async
{
when
(
visualStudio
.
hasNecessaryComponents
).
thenReturn
(
false
);
when
(
visualStudio
.
hasNecessaryComponents
).
thenReturn
(
false
);
when
(
visualStudio
.
workloadDescription
).
thenReturn
(
'Desktop development'
);
when
(
visualStudio
.
necessaryComponentDescriptions
(
any
)).
thenReturn
(<
String
>[
'A'
,
'B'
]);
when
(
visualStudio
.
fullVersion
).
thenReturn
(
'15.1'
);
const
VisualStudioValidator
validator
=
VisualStudioValidator
();
const
VisualStudioValidator
validator
=
VisualStudioValidator
();
final
ValidationResult
result
=
await
validator
.
validate
();
final
ValidationResult
result
=
await
validator
.
validate
();
expect
(
result
.
type
,
ValidationType
.
partial
);
expect
(
result
.
type
,
ValidationType
.
partial
);
...
@@ -109,7 +109,12 @@ void main() {
...
@@ -109,7 +109,12 @@ void main() {
when
(
visualStudio
.
isInstalled
).
thenReturn
(
false
);
when
(
visualStudio
.
isInstalled
).
thenReturn
(
false
);
const
VisualStudioValidator
validator
=
VisualStudioValidator
();
const
VisualStudioValidator
validator
=
VisualStudioValidator
();
final
ValidationResult
result
=
await
validator
.
validate
();
final
ValidationResult
result
=
await
validator
.
validate
();
final
ValidationMessage
expectedMessage
=
ValidationMessage
.
error
(
userMessages
.
visualStudioMissing
);
final
ValidationMessage
expectedMessage
=
ValidationMessage
.
error
(
userMessages
.
visualStudioMissing
(
visualStudio
.
workloadDescription
,
visualStudio
.
necessaryComponentDescriptions
(
validator
.
majorVersion
)
)
);
expect
(
result
.
messages
.
contains
(
expectedMessage
),
true
);
expect
(
result
.
messages
.
contains
(
expectedMessage
),
true
);
expect
(
result
.
type
,
ValidationType
.
missing
);
expect
(
result
.
type
,
ValidationType
.
missing
);
},
overrides:
<
Type
,
Generator
>{
},
overrides:
<
Type
,
Generator
>{
...
...
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