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
2acd0007
Unverified
Commit
2acd0007
authored
May 19, 2021
by
Lau Ching Jun
Committed by
GitHub
May 19, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor CustomDimensions in analytics to be type safe (#82531)
parent
3b19dfd4
Changes
32
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
625 additions
and
371 deletions
+625
-371
assemble.dart
packages/flutter_tools/lib/src/commands/assemble.dart
+7
-7
build_aar.dart
packages/flutter_tools/lib/src/commands/build_aar.dart
+12
-8
build_apk.dart
packages/flutter_tools/lib/src/commands/build_apk.dart
+12
-12
build_appbundle.dart
packages/flutter_tools/lib/src/commands/build_appbundle.dart
+11
-10
build_bundle.dart
packages/flutter_tools/lib/src/commands/build_bundle.dart
+6
-6
create.dart
packages/flutter_tools/lib/src/commands/create.dart
+6
-6
packages.dart
packages/flutter_tools/lib/src/commands/packages.dart
+13
-9
run.dart
packages/flutter_tools/lib/src/commands/run.dart
+10
-11
custom_dimensions.dart
...es/flutter_tools/lib/src/reporting/custom_dimensions.dart
+370
-0
disabled_usage.dart
packages/flutter_tools/lib/src/reporting/disabled_usage.dart
+2
-2
events.dart
packages/flutter_tools/lib/src/reporting/events.dart
+25
-38
reporting.dart
packages/flutter_tools/lib/src/reporting/reporting.dart
+1
-0
usage.dart
packages/flutter_tools/lib/src/reporting/usage.dart
+24
-90
flutter_command.dart
packages/flutter_tools/lib/src/runner/flutter_command.dart
+4
-8
create_usage_test.dart
...tools/test/commands.shard/hermetic/create_usage_test.dart
+8
-13
pub_get_test.dart
...tter_tools/test/commands.shard/hermetic/pub_get_test.dart
+15
-15
run_test.dart
.../flutter_tools/test/commands.shard/hermetic/run_test.dart
+2
-2
build_aar_test.dart
...r_tools/test/commands.shard/permeable/build_aar_test.dart
+3
-6
build_apk_test.dart
...r_tools/test/commands.shard/permeable/build_apk_test.dart
+10
-17
build_appbundle_test.dart
...s/test/commands.shard/permeable/build_appbundle_test.dart
+7
-12
build_bundle_test.dart
...ools/test/commands.shard/permeable/build_bundle_test.dart
+3
-7
packages_test.dart
...er_tools/test/commands.shard/permeable/packages_test.dart
+6
-13
analytics_test.dart
...ages/flutter_tools/test/general.shard/analytics_test.dart
+2
-2
android_gradle_builder_test.dart
...st/general.shard/android/android_gradle_builder_test.dart
+5
-5
gradle_errors_test.dart
..._tools/test/general.shard/android/gradle_errors_test.dart
+12
-12
gradle_find_bundle_test.dart
...s/test/general.shard/android/gradle_find_bundle_test.dart
+3
-3
mac_test.dart
packages/flutter_tools/test/general.shard/ios/mac_test.dart
+4
-4
events_test.dart
...utter_tools/test/general.shard/reporting/events_test.dart
+6
-6
resident_runner_test.dart
...lutter_tools/test/general.shard/resident_runner_test.dart
+27
-38
resident_web_runner_test.dart
...er_tools/test/general.shard/resident_web_runner_test.dart
+4
-4
flutter_command_test.dart
...tools/test/general.shard/runner/flutter_command_test.dart
+3
-3
runner_test.dart
.../flutter_tools/test/general.shard/runner/runner_test.dart
+2
-2
No files found.
packages/flutter_tools/lib/src/commands/assemble.dart
View file @
2acd0007
...
...
@@ -140,20 +140,20 @@ class AssembleCommand extends FlutterCommand {
String
get
name
=>
'assemble'
;
@override
Future
<
Map
<
CustomDimensions
,
String
>
>
get
usageValues
async
{
Future
<
CustomDimensions
>
get
usageValues
async
{
final
FlutterProject
flutterProject
=
FlutterProject
.
current
();
if
(
flutterProject
==
null
)
{
return
const
<
CustomDimensions
,
String
>{}
;
return
const
CustomDimensions
()
;
}
try
{
return
<
CustomDimensions
,
String
>{
CustomDimensions
.
commandBuildBundleTargetPlatform
:
environment
.
defines
[
kTargetPlatform
],
CustomDimensions
.
commandBuildBundleIsModule
:
'
${flutterProject.isModule}
'
,
}
;
return
CustomDimensions
(
commandBuildBundleTargetPlatform:
environment
.
defines
[
kTargetPlatform
],
commandBuildBundleIsModule:
flutterProject
.
isModule
,
)
;
}
on
Exception
{
// We've failed to send usage.
}
return
const
<
CustomDimensions
,
String
>{}
;
return
const
CustomDimensions
()
;
}
@override
...
...
packages/flutter_tools/lib/src/commands/build_aar.dart
View file @
2acd0007
...
...
@@ -75,21 +75,25 @@ class BuildAarCommand extends BuildSubCommand {
};
@override
Future
<
Map
<
CustomDimensions
,
String
>>
get
usageValues
async
{
final
Map
<
CustomDimensions
,
String
>
usage
=
<
CustomDimensions
,
String
>{};
Future
<
CustomDimensions
>
get
usageValues
async
{
final
FlutterProject
flutterProject
=
_getProject
();
if
(
flutterProject
==
null
)
{
return
usage
;
return
const
CustomDimensions
()
;
}
String
projectType
;
if
(
flutterProject
.
manifest
.
isModule
)
{
usage
[
CustomDimensions
.
commandBuildAarProjectType
]
=
'module'
;
projectType
=
'module'
;
}
else
if
(
flutterProject
.
manifest
.
isPlugin
)
{
usage
[
CustomDimensions
.
commandBuildAarProjectType
]
=
'plugin'
;
projectType
=
'plugin'
;
}
else
{
usage
[
CustomDimensions
.
commandBuildAarProjectType
]
=
'app'
;
projectType
=
'app'
;
}
usage
[
CustomDimensions
.
commandBuildAarTargetPlatform
]
=
stringsArg
(
'target-platform'
).
join
(
','
);
return
usage
;
return
CustomDimensions
(
commandBuildAarProjectType:
projectType
,
commandBuildAarTargetPlatform:
stringsArg
(
'target-platform'
).
join
(
','
),
);
}
@override
...
...
packages/flutter_tools/lib/src/commands/build_apk.dart
View file @
2acd0007
...
...
@@ -68,25 +68,25 @@ class BuildApkCommand extends BuildSubCommand {
' * https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split'
;
@override
Future
<
Map
<
CustomDimensions
,
String
>>
get
usageValues
async
{
final
Map
<
CustomDimensions
,
String
>
usage
=
<
CustomDimensions
,
String
>{};
usage
[
CustomDimensions
.
commandBuildApkTargetPlatform
]
=
stringsArg
(
'target-platform'
).
join
(
','
);
usage
[
CustomDimensions
.
commandBuildApkSplitPerAbi
]
=
boolArg
(
'split-per-abi'
).
toString
();
Future
<
CustomDimensions
>
get
usageValues
async
{
String
buildMode
;
if
(
boolArg
(
'release'
))
{
usage
[
CustomDimensions
.
commandBuildApkBuildMode
]
=
'release'
;
buildMode
=
'release'
;
}
else
if
(
boolArg
(
'debug'
))
{
usage
[
CustomDimensions
.
commandBuildApkBuildMode
]
=
'debug'
;
buildMode
=
'debug'
;
}
else
if
(
boolArg
(
'profile'
))
{
usage
[
CustomDimensions
.
commandBuildApkBuildMode
]
=
'profile'
;
buildMode
=
'profile'
;
}
else
{
// The build defaults to release.
usage
[
CustomDimensions
.
commandBuildApkBuildMode
]
=
'release'
;
buildMode
=
'release'
;
}
return
usage
;
return
CustomDimensions
(
commandBuildApkTargetPlatform:
stringsArg
(
'target-platform'
).
join
(
','
),
commandBuildApkBuildMode:
buildMode
,
commandBuildApkSplitPerAbi:
boolArg
(
'split-per-abi'
),
);
}
@override
...
...
packages/flutter_tools/lib/src/commands/build_appbundle.dart
View file @
2acd0007
...
...
@@ -82,23 +82,24 @@ class BuildAppBundleCommand extends BuildSubCommand {
'suitable for deploying to app stores.
\n
app bundle improves your app size'
;
@override
Future
<
Map
<
CustomDimensions
,
String
>>
get
usageValues
async
{
final
Map
<
CustomDimensions
,
String
>
usage
=
<
CustomDimensions
,
String
>{};
usage
[
CustomDimensions
.
commandBuildAppBundleTargetPlatform
]
=
stringsArg
(
'target-platform'
).
join
(
','
);
Future
<
CustomDimensions
>
get
usageValues
async
{
String
buildMode
;
if
(
boolArg
(
'release'
))
{
usage
[
CustomDimensions
.
commandBuildAppBundleBuildMode
]
=
'release'
;
buildMode
=
'release'
;
}
else
if
(
boolArg
(
'debug'
))
{
usage
[
CustomDimensions
.
commandBuildAppBundleBuildMode
]
=
'debug'
;
buildMode
=
'debug'
;
}
else
if
(
boolArg
(
'profile'
))
{
usage
[
CustomDimensions
.
commandBuildAppBundleBuildMode
]
=
'profile'
;
buildMode
=
'profile'
;
}
else
{
// The build defaults to release.
usage
[
CustomDimensions
.
commandBuildAppBundleBuildMode
]
=
'release'
;
buildMode
=
'release'
;
}
return
usage
;
return
CustomDimensions
(
commandBuildAppBundleTargetPlatform:
stringsArg
(
'target-platform'
).
join
(
','
),
commandBuildAppBundleBuildMode:
buildMode
,
);
}
@override
...
...
packages/flutter_tools/lib/src/commands/build_bundle.dart
View file @
2acd0007
...
...
@@ -69,16 +69,16 @@ class BuildBundleCommand extends BuildSubCommand {
' iOS runtimes.'
;
@override
Future
<
Map
<
CustomDimensions
,
String
>
>
get
usageValues
async
{
Future
<
CustomDimensions
>
get
usageValues
async
{
final
String
projectDir
=
globals
.
fs
.
file
(
targetFile
).
parent
.
parent
.
path
;
final
FlutterProject
flutterProject
=
FlutterProject
.
fromDirectory
(
globals
.
fs
.
directory
(
projectDir
));
if
(
flutterProject
==
null
)
{
return
const
<
CustomDimensions
,
String
>{}
;
return
const
CustomDimensions
()
;
}
return
<
CustomDimensions
,
String
>{
CustomDimensions
.
commandBuildBundleTargetPlatform
:
stringArg
(
'target-platform'
),
CustomDimensions
.
commandBuildBundleIsModule
:
'
${flutterProject.isModule}
'
,
}
;
return
CustomDimensions
(
commandBuildBundleTargetPlatform:
stringArg
(
'target-platform'
),
commandBuildBundleIsModule:
flutterProject
.
isModule
,
)
;
}
@override
...
...
packages/flutter_tools/lib/src/commands/create.dart
View file @
2acd0007
...
...
@@ -79,12 +79,12 @@ class CreateCommand extends CreateBase {
String
get
invocation
=>
'
${runner.executableName}
$name
<output directory>'
;
@override
Future
<
Map
<
CustomDimensions
,
String
>
>
get
usageValues
async
{
return
<
CustomDimensions
,
String
>{
CustomDimensions
.
commandCreateProjectType
:
stringArg
(
'template'
),
CustomDimensions
.
commandCreateAndroidLanguage
:
stringArg
(
'android-language'
),
CustomDimensions
.
commandCreateIosLanguage
:
stringArg
(
'ios-language'
),
}
;
Future
<
CustomDimensions
>
get
usageValues
async
{
return
CustomDimensions
(
commandCreateProjectType:
stringArg
(
'template'
),
commandCreateAndroidLanguage:
stringArg
(
'android-language'
),
commandCreateIosLanguage:
stringArg
(
'ios-language'
),
)
;
}
// Lazy-initialize the net utilities with values from the context.
...
...
packages/flutter_tools/lib/src/commands/packages.dart
View file @
2acd0007
...
...
@@ -81,13 +81,15 @@ class PackagesGetCommand extends FlutterCommand {
/// The pub packages usage values are incorrect since these are calculated/sent
/// before pub get completes. This needs to be performed after dependency resolution.
@override
Future
<
Map
<
CustomDimensions
,
String
>>
get
usageValues
async
{
final
Map
<
CustomDimensions
,
String
>
usageValues
=
<
CustomDimensions
,
String
>{};
Future
<
CustomDimensions
>
get
usageValues
async
{
final
String
workingDirectory
=
argResults
.
rest
.
length
==
1
?
argResults
.
rest
[
0
]
:
null
;
final
String
target
=
findProjectRoot
(
globals
.
fs
,
workingDirectory
);
if
(
target
==
null
)
{
return
usageValues
;
return
const
CustomDimensions
()
;
}
int
numberPlugins
;
final
FlutterProject
rootProject
=
FlutterProject
.
fromDirectory
(
globals
.
fs
.
directory
(
target
));
// Do not send plugin analytics if pub has not run before.
final
bool
hasPlugins
=
rootProject
.
flutterPluginsDependenciesFile
.
existsSync
()
...
...
@@ -97,14 +99,16 @@ class PackagesGetCommand extends FlutterCommand {
// Do not fail pub get if package config files are invalid before pub has
// had a chance to run.
final
List
<
Plugin
>
plugins
=
await
findPlugins
(
rootProject
,
throwOnError:
false
);
usageValues
[
CustomDimensions
.
commandPackagesNumberPlugins
]
=
plugins
.
length
.
toString
()
;
numberPlugins
=
plugins
.
length
;
}
else
{
usageValues
[
CustomDimensions
.
commandPackagesNumberPlugins
]
=
'0'
;
numberPlugins
=
0
;
}
usageValues
[
CustomDimensions
.
commandPackagesProjectModule
]
=
'
${rootProject.isModule}
'
;
usageValues
[
CustomDimensions
.
commandPackagesAndroidEmbeddingVersion
]
=
rootProject
.
android
.
getEmbeddingVersion
().
toString
().
split
(
'.'
).
last
;
return
usageValues
;
return
CustomDimensions
(
commandPackagesNumberPlugins:
numberPlugins
,
commandPackagesProjectModule:
rootProject
.
isModule
,
commandPackagesAndroidEmbeddingVersion:
rootProject
.
android
.
getEmbeddingVersion
().
toString
().
split
(
'.'
).
last
,
);
}
Future
<
void
>
_runPubGet
(
String
directory
,
FlutterProject
flutterProject
)
async
{
...
...
packages/flutter_tools/lib/src/commands/run.dart
View file @
2acd0007
...
...
@@ -357,7 +357,7 @@ class RunCommand extends RunCommandBase {
}
@override
Future
<
Map
<
CustomDimensions
,
String
>
>
get
usageValues
async
{
Future
<
CustomDimensions
>
get
usageValues
async
{
String
deviceType
,
deviceOsVersion
;
bool
isEmulator
;
bool
anyAndroidDevices
=
false
;
...
...
@@ -410,16 +410,15 @@ class RunCommand extends RunCommandBase {
final
BuildInfo
buildInfo
=
await
getBuildInfo
();
final
String
modeName
=
buildInfo
.
modeName
;
return
<
CustomDimensions
,
String
>{
CustomDimensions
.
commandRunIsEmulator
:
'
$isEmulator
'
,
CustomDimensions
.
commandRunTargetName
:
deviceType
,
CustomDimensions
.
commandRunTargetOsVersion
:
deviceOsVersion
,
CustomDimensions
.
commandRunModeName
:
modeName
,
CustomDimensions
.
commandRunProjectModule
:
'
${FlutterProject.current().isModule}
'
,
CustomDimensions
.
commandRunProjectHostLanguage
:
hostLanguage
.
join
(
','
),
if
(
androidEmbeddingVersion
!=
null
)
CustomDimensions
.
commandRunAndroidEmbeddingVersion
:
androidEmbeddingVersion
,
};
return
CustomDimensions
(
commandRunIsEmulator:
isEmulator
,
commandRunTargetName:
deviceType
,
commandRunTargetOsVersion:
deviceOsVersion
,
commandRunModeName:
modeName
,
commandRunProjectModule:
FlutterProject
.
current
().
isModule
,
commandRunProjectHostLanguage:
hostLanguage
.
join
(
','
),
commandRunAndroidEmbeddingVersion:
androidEmbeddingVersion
,
);
}
@override
...
...
packages/flutter_tools/lib/src/reporting/custom_dimensions.dart
0 → 100644
View file @
2acd0007
This diff is collapsed.
Click to expand it.
packages/flutter_tools/lib/src/reporting/disabled_usage.dart
View file @
2acd0007
...
...
@@ -21,7 +21,7 @@ class DisabledUsage implements Usage {
String
get
clientId
=>
''
;
@override
void
sendCommand
(
String
command
,
{
Map
<
String
,
String
>
?
parameters
})
{
}
void
sendCommand
(
String
command
,
{
CustomDimensions
?
parameters
})
{
}
@override
void
sendEvent
(
...
...
@@ -29,7 +29,7 @@ class DisabledUsage implements Usage {
String
parameter
,
{
String
?
label
,
int
?
value
,
Map
<
String
,
String
>
?
parameters
,
CustomDimensions
?
parameters
,
})
{
}
@override
...
...
packages/flutter_tools/lib/src/reporting/events.dart
View file @
2acd0007
...
...
@@ -68,32 +68,22 @@ class HotEvent extends UsageEvent {
@override
void
send
()
{
final
Map
<
String
,
String
>
parameters
=
_useCdKeys
(<
CustomDimensions
,
String
>{
CustomDimensions
.
hotEventTargetPlatform
:
targetPlatform
,
CustomDimensions
.
hotEventSdkName
:
sdkName
,
CustomDimensions
.
hotEventEmulator
:
emulator
.
toString
(),
CustomDimensions
.
hotEventFullRestart
:
fullRestart
.
toString
(),
if
(
reason
!=
null
)
CustomDimensions
.
hotEventReason
:
reason
!,
if
(
finalLibraryCount
!=
null
)
CustomDimensions
.
hotEventFinalLibraryCount
:
finalLibraryCount
.
toString
(),
if
(
syncedLibraryCount
!=
null
)
CustomDimensions
.
hotEventSyncedLibraryCount
:
syncedLibraryCount
.
toString
(),
if
(
syncedClassesCount
!=
null
)
CustomDimensions
.
hotEventSyncedClassesCount
:
syncedClassesCount
.
toString
(),
if
(
syncedProceduresCount
!=
null
)
CustomDimensions
.
hotEventSyncedProceduresCount
:
syncedProceduresCount
.
toString
(),
if
(
syncedBytes
!=
null
)
CustomDimensions
.
hotEventSyncedBytes
:
syncedBytes
.
toString
(),
if
(
invalidatedSourcesCount
!=
null
)
CustomDimensions
.
hotEventInvalidatedSourcesCount
:
invalidatedSourcesCount
.
toString
(),
if
(
transferTimeInMs
!=
null
)
CustomDimensions
.
hotEventTransferTimeInMs
:
transferTimeInMs
.
toString
(),
if
(
overallTimeInMs
!=
null
)
CustomDimensions
.
hotEventOverallTimeInMs
:
overallTimeInMs
.
toString
(),
if
(
fastReassemble
!=
null
)
CustomDimensions
.
fastReassemble
:
fastReassemble
.
toString
(),
});
final
CustomDimensions
parameters
=
CustomDimensions
(
hotEventTargetPlatform:
targetPlatform
,
hotEventSdkName:
sdkName
,
hotEventEmulator:
emulator
,
hotEventFullRestart:
fullRestart
,
hotEventReason:
reason
,
hotEventFinalLibraryCount:
finalLibraryCount
,
hotEventSyncedLibraryCount:
syncedLibraryCount
,
hotEventSyncedClassesCount:
syncedClassesCount
,
hotEventSyncedProceduresCount:
syncedProceduresCount
,
hotEventSyncedBytes:
syncedBytes
,
hotEventInvalidatedSourcesCount:
invalidatedSourcesCount
,
hotEventTransferTimeInMs:
transferTimeInMs
,
hotEventOverallTimeInMs:
overallTimeInMs
,
fastReassemble:
fastReassemble
,
);
flutterUsage
.
sendEvent
(
category
,
parameter
,
parameters:
parameters
);
}
}
...
...
@@ -169,14 +159,11 @@ class BuildEvent extends UsageEvent {
@override
void
send
()
{
final
Map
<
String
,
String
>
parameters
=
_useCdKeys
(<
CustomDimensions
,
String
>{
if
(
_command
!=
null
)
CustomDimensions
.
buildEventCommand
:
_command
!,
if
(
_settings
!=
null
)
CustomDimensions
.
buildEventSettings
:
_settings
!,
if
(
_eventError
!=
null
)
CustomDimensions
.
buildEventError
:
_eventError
!,
});
final
CustomDimensions
parameters
=
CustomDimensions
(
buildEventCommand:
_command
,
buildEventSettings:
_settings
,
buildEventError:
_eventError
,
);
flutterUsage
.
sendEvent
(
category
,
parameter
,
...
...
@@ -290,10 +277,10 @@ class NullSafetyAnalysisEvent implements UsageEvent {
}
}
flutterUsage
.
sendEvent
(
kNullSafetyCategory
,
'runtime-mode'
,
label:
nullSafetyMode
.
toString
());
flutterUsage
.
sendEvent
(
kNullSafetyCategory
,
'stats'
,
parameters:
<
String
,
String
>{
cdKey
(
CustomDimensions
.
nullSafeMigratedLibraries
):
migrated
.
toString
()
,
cdKey
(
CustomDimensions
.
nullSafeTotalLibraries
):
packageConfig
.
packages
.
length
.
toString
()
,
}
);
flutterUsage
.
sendEvent
(
kNullSafetyCategory
,
'stats'
,
parameters:
CustomDimensions
(
nullSafeMigratedLibraries:
migrated
,
nullSafeTotalLibraries:
packageConfig
.
packages
.
length
,
)
);
if
(
languageVersion
!=
null
)
{
final
String
formattedVersion
=
'
${languageVersion.major}
.
${languageVersion.minor}
'
;
flutterUsage
.
sendEvent
(
kNullSafetyCategory
,
'language-version'
,
label:
formattedVersion
);
...
...
packages/flutter_tools/lib/src/reporting/reporting.dart
View file @
2acd0007
...
...
@@ -25,3 +25,4 @@ import 'first_run.dart';
part
'disabled_usage.dart'
;
part
'events.dart'
;
part
'usage.dart'
;
part
'custom_dimensions.dart'
;
packages/flutter_tools/lib/src/reporting/usage.dart
View file @
2acd0007
...
...
@@ -6,70 +6,6 @@ part of reporting;
const
String
_kFlutterUA
=
'UA-67589403-6'
;
/// The collection of custom dimensions understood by the analytics backend.
/// When adding to this list, first ensure that the custom dimension is
/// defined in the backend, or will be defined shortly after the relevant PR
/// lands.
enum
CustomDimensions
{
sessionHostOsDetails
,
// cd1
sessionChannelName
,
// cd2
commandRunIsEmulator
,
// cd3
commandRunTargetName
,
// cd4
hotEventReason
,
// cd5
hotEventFinalLibraryCount
,
// cd6
hotEventSyncedLibraryCount
,
// cd7
hotEventSyncedClassesCount
,
// cd8
hotEventSyncedProceduresCount
,
// cd9
hotEventSyncedBytes
,
// cd10
hotEventInvalidatedSourcesCount
,
// cd11
hotEventTransferTimeInMs
,
// cd12
hotEventOverallTimeInMs
,
// cd13
commandRunProjectType
,
// cd14
commandRunProjectHostLanguage
,
// cd15
commandCreateAndroidLanguage
,
// cd16
commandCreateIosLanguage
,
// cd17
commandRunProjectModule
,
// cd18
commandCreateProjectType
,
// cd19
commandPackagesNumberPlugins
,
// cd20
commandPackagesProjectModule
,
// cd21
commandRunTargetOsVersion
,
// cd22
commandRunModeName
,
// cd23
commandBuildBundleTargetPlatform
,
// cd24
commandBuildBundleIsModule
,
// cd25
commandResult
,
// cd26
hotEventTargetPlatform
,
// cd27
hotEventSdkName
,
// cd28
hotEventEmulator
,
// cd29
hotEventFullRestart
,
// cd30
commandHasTerminal
,
// cd31
enabledFlutterFeatures
,
// cd32
localTime
,
// cd33
commandBuildAarTargetPlatform
,
// cd34
commandBuildAarProjectType
,
// cd35
buildEventCommand
,
// cd36
buildEventSettings
,
// cd37
commandBuildApkTargetPlatform
,
// cd38
commandBuildApkBuildMode
,
// cd39
commandBuildApkSplitPerAbi
,
// cd40
commandBuildAppBundleTargetPlatform
,
// cd41
commandBuildAppBundleBuildMode
,
// cd42
buildEventError
,
// cd43
commandResultEventMaxRss
,
// cd44
commandRunAndroidEmbeddingVersion
,
// cd45
commandPackagesAndroidEmbeddingVersion
,
// cd46
nullSafety
,
// cd47
fastReassemble
,
// cd48
nullSafeMigratedLibraries
,
// cd49
nullSafeTotalLibraries
,
// cd 50
}
String
cdKey
(
CustomDimensions
cd
)
=>
'cd
${cd.index + 1}
'
;
Map
<
String
,
String
>
_useCdKeys
(
Map
<
CustomDimensions
,
Object
>
parameters
)
{
return
parameters
.
map
((
CustomDimensions
k
,
Object
v
)
=>
MapEntry
<
String
,
String
>(
cdKey
(
k
),
v
.
toString
()));
}
abstract
class
Usage
{
/// Create a new Usage instance; [versionOverride], [configDirOverride], and
/// [logFile] are used for testing.
...
...
@@ -94,8 +30,8 @@ abstract class Usage {
/// Uses the global [Usage] instance to send a 'command' to analytics.
static
void
command
(
String
command
,
{
Map
<
CustomDimensions
,
Object
>
?
parameters
,
})
=>
globals
.
flutterUsage
.
sendCommand
(
command
,
parameters:
parameters
==
null
?
null
:
_useCdKeys
(
parameters
)
);
CustomDimensions
?
parameters
,
})
=>
globals
.
flutterUsage
.
sendCommand
(
command
,
parameters:
parameters
);
/// Whether analytics reporting should be suppressed.
bool
get
suppressAnalytics
;
...
...
@@ -119,7 +55,7 @@ abstract class Usage {
/// keys are well-defined in [CustomDimensions] above.
void
sendCommand
(
String
command
,
{
Map
<
String
,
String
>
?
parameters
,
CustomDimensions
?
parameters
,
});
/// Sends an 'event' to the underlying analytics implementation.
...
...
@@ -133,7 +69,7 @@ abstract class Usage {
String
parameter
,
{
String
?
label
,
int
?
value
,
Map
<
String
,
String
>
?
parameters
,
CustomDimensions
?
parameters
,
});
/// Sends timing information to the underlying analytics implementation.
...
...
@@ -256,12 +192,12 @@ class _DefaultUsage implements Usage {
if
(!
skipAnalyticsSessionSetup
)
{
// Report a more detailed OS version string than package:usage does by default.
analytics
.
setSessionValue
(
cdKey
(
CustomDimensions
.
sessionHostOsDetails
),
cdKey
(
CustomDimensions
Enum
.
sessionHostOsDetails
),
globals
.
os
.
name
,
);
// Send the branch name as the "channel".
analytics
.
setSessionValue
(
cdKey
(
CustomDimensions
.
sessionChannelName
),
cdKey
(
CustomDimensions
Enum
.
sessionChannelName
),
flutterVersion
.
getBranchName
(
redactUnknownBranches:
true
),
);
// For each flutter experimental feature, record a session value in a comma
...
...
@@ -274,7 +210,7 @@ class _DefaultUsage implements Usage {
.
map
((
Feature
feature
)
=>
feature
.
configSetting
)
.
join
(
','
);
analytics
.
setSessionValue
(
cdKey
(
CustomDimensions
.
enabledFlutterFeatures
),
cdKey
(
CustomDimensions
Enum
.
enabledFlutterFeatures
),
enabledFeatures
,
);
...
...
@@ -320,16 +256,17 @@ class _DefaultUsage implements Usage {
String
get
clientId
=>
_analytics
.
clientId
;
@override
void
sendCommand
(
String
command
,
{
Map
<
String
,
String
>
?
parameters
})
{
void
sendCommand
(
String
command
,
{
CustomDimensions
?
parameters
})
{
if
(
suppressAnalytics
)
{
return
;
}
final
Map
<
String
,
String
>
paramsWithLocalTime
=
<
String
,
String
>{
...?
parameters
,
cdKey
(
CustomDimensions
.
localTime
):
formatDateTime
(
_clock
.
now
()),
};
_analytics
.
sendScreenView
(
command
,
parameters:
paramsWithLocalTime
);
_analytics
.
sendScreenView
(
command
,
parameters:
CustomDimensions
(
localTime:
formatDateTime
(
_clock
.
now
()))
.
merge
(
parameters
)
.
toMap
(),
);
}
@override
...
...
@@ -338,23 +275,20 @@ class _DefaultUsage implements Usage {
String
parameter
,
{
String
?
label
,
int
?
value
,
Map
<
String
,
String
>
?
parameters
,
CustomDimensions
?
parameters
,
})
{
if
(
suppressAnalytics
)
{
return
;
}
final
Map
<
String
,
String
>
paramsWithLocalTime
=
<
String
,
String
>{
...?
parameters
,
cdKey
(
CustomDimensions
.
localTime
):
formatDateTime
(
_clock
.
now
()),
};
_analytics
.
sendEvent
(
category
,
parameter
,
label:
label
,
value:
value
,
parameters:
paramsWithLocalTime
,
parameters:
CustomDimensions
(
localTime:
formatDateTime
(
_clock
.
now
()))
.
merge
(
parameters
)
.
toMap
(),
);
}
...
...
@@ -516,12 +450,12 @@ class TestUsage implements Usage {
void
printWelcome
()
{
}
@override
void
sendCommand
(
String
command
,
{
Map
<
String
,
String
>
?
parameters
})
{
void
sendCommand
(
String
command
,
{
CustomDimensions
?
parameters
})
{
commands
.
add
(
TestUsageCommand
(
command
,
parameters:
parameters
));
}
@override
void
sendEvent
(
String
category
,
String
parameter
,
{
String
?
label
,
int
?
value
,
Map
<
String
,
String
>
?
parameters
})
{
void
sendEvent
(
String
category
,
String
parameter
,
{
String
?
label
,
int
?
value
,
CustomDimensions
?
parameters
})
{
events
.
add
(
TestUsageEvent
(
category
,
parameter
,
label:
label
,
value:
value
,
parameters:
parameters
));
}
...
...
@@ -542,13 +476,13 @@ class TestUsageCommand {
const
TestUsageCommand
(
this
.
command
,
{
this
.
parameters
});
final
String
command
;
final
Map
<
String
,
String
>
?
parameters
;
final
CustomDimensions
?
parameters
;
@override
bool
operator
==(
Object
other
)
{
return
other
is
TestUsageCommand
&&
other
.
command
==
command
&&
_mapsEqual
(
other
.
parameters
,
parameters
)
;
other
.
parameters
==
parameters
;
}
@override
...
...
@@ -567,7 +501,7 @@ class TestUsageEvent {
final
String
parameter
;
final
String
?
label
;
final
int
?
value
;
final
Map
<
String
,
String
>
?
parameters
;
final
CustomDimensions
?
parameters
;
@override
bool
operator
==(
Object
other
)
{
...
...
@@ -576,7 +510,7 @@ class TestUsageEvent {
other
.
parameter
==
parameter
&&
other
.
label
==
label
&&
other
.
value
==
value
&&
_mapsEqual
(
other
.
parameters
,
parameters
)
;
other
.
parameters
==
parameters
;
}
@override
...
...
packages/flutter_tools/lib/src/runner/flutter_command.dart
View file @
2acd0007
...
...
@@ -1063,8 +1063,7 @@ abstract class FlutterCommand extends Command<void> {
}
/// Additional usage values to be sent with the usage ping.
Future
<
Map
<
CustomDimensions
,
String
>>
get
usageValues
async
=>
const
<
CustomDimensions
,
String
>{};
Future
<
CustomDimensions
>
get
usageValues
async
=>
const
CustomDimensions
();
/// Runs this command.
///
...
...
@@ -1231,12 +1230,9 @@ abstract class FlutterCommand extends Command<void> {
setupApplicationPackages
();
if
(
commandPath
!=
null
)
{
final
Map
<
CustomDimensions
,
Object
>
additionalUsageValues
=
<
CustomDimensions
,
Object
>{
...?
await
usageValues
,
CustomDimensions
.
commandHasTerminal
:
globals
.
stdio
.
hasTerminal
,
};
Usage
.
command
(
commandPath
,
parameters:
additionalUsageValues
);
Usage
.
command
(
commandPath
,
parameters:
CustomDimensions
(
commandHasTerminal:
globals
.
stdio
.
hasTerminal
,
).
merge
(
await
usageValues
));
}
return
runCommand
();
...
...
packages/flutter_tools/test/commands.shard/hermetic/create_usage_test.dart
View file @
2acd0007
...
...
@@ -12,7 +12,6 @@ import 'package:flutter_tools/src/convert.dart';
import
'package:flutter_tools/src/doctor.dart'
;
import
'package:flutter_tools/src/doctor_validator.dart'
;
import
'package:flutter_tools/src/globals_null_migrated.dart'
as
globals
;
import
'package:flutter_tools/src/reporting/reporting.dart'
;
import
'../../src/context.dart'
;
import
'../../src/test_flutter_command_runner.dart'
;
...
...
@@ -72,16 +71,16 @@ void main() {
final
CommandRunner
<
void
>
runner
=
createTestCommandRunner
(
command
);
await
runner
.
run
(<
String
>[
'create'
,
'--no-pub'
,
'--template=module'
,
'testy'
]);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandCreateProjectType
,
'module'
)
);
expect
(
(
await
command
.
usageValues
).
commandCreateProjectType
,
'module'
);
await
runner
.
run
(<
String
>[
'create'
,
'--no-pub'
,
'--template=app'
,
'testy'
]);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandCreateProjectType
,
'app'
)
);
expect
(
(
await
command
.
usageValues
).
commandCreateProjectType
,
'app'
);
await
runner
.
run
(<
String
>[
'create'
,
'--no-pub'
,
'--template=package'
,
'testy'
]);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandCreateProjectType
,
'package'
)
);
expect
(
(
await
command
.
usageValues
).
commandCreateProjectType
,
'package'
);
await
runner
.
run
(<
String
>[
'create'
,
'--no-pub'
,
'--template=plugin'
,
'testy'
]);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandCreateProjectType
,
'plugin'
)
);
expect
(
(
await
command
.
usageValues
).
commandCreateProjectType
,
'plugin'
);
}));
testUsingContext
(
'set iOS host language type as usage value'
,
()
=>
testbed
.
run
(()
async
{
...
...
@@ -90,8 +89,7 @@ void main() {
await
runner
.
run
(<
String
>[
'create'
,
'--no-pub'
,
'--template=app'
,
'testy'
]);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandCreateIosLanguage
,
'swift'
));
expect
((
await
command
.
usageValues
).
commandCreateIosLanguage
,
'swift'
);
await
runner
.
run
(<
String
>[
'create'
,
...
...
@@ -100,8 +98,7 @@ void main() {
'--ios-language=objc'
,
'testy'
,
]);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandCreateIosLanguage
,
'objc'
));
expect
((
await
command
.
usageValues
).
commandCreateIosLanguage
,
'objc'
);
}));
...
...
@@ -110,8 +107,7 @@ void main() {
final
CommandRunner
<
void
>
runner
=
createTestCommandRunner
(
command
);
await
runner
.
run
(<
String
>[
'create'
,
'--no-pub'
,
'--template=app'
,
'testy'
]);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandCreateAndroidLanguage
,
'kotlin'
));
expect
((
await
command
.
usageValues
).
commandCreateAndroidLanguage
,
'kotlin'
);
await
runner
.
run
(<
String
>[
'create'
,
...
...
@@ -120,8 +116,7 @@ void main() {
'--android-language=java'
,
'testy'
,
]);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandCreateAndroidLanguage
,
'java'
));
expect
((
await
command
.
usageValues
).
commandCreateAndroidLanguage
,
'java'
);
}));
});
}
...
...
packages/flutter_tools/test/commands.shard/hermetic/pub_get_test.dart
View file @
2acd0007
...
...
@@ -41,11 +41,11 @@ void main() {
await
commandRunner
.
run
(<
String
>[
'get'
]);
expect
(
await
command
.
usageValues
,
<
CustomDimensions
,
Object
>{
CustomDimensions
.
commandPackagesNumberPlugins
:
'0'
,
CustomDimensions
.
commandPackagesProjectModule
:
'false'
,
CustomDimensions
.
commandPackagesAndroidEmbeddingVersion
:
'v1'
}
);
expect
(
await
command
.
usageValues
,
const
CustomDimensions
(
commandPackagesNumberPlugins:
0
,
commandPackagesProjectModule:
false
,
commandPackagesAndroidEmbeddingVersion:
'v1'
,
)
);
},
overrides:
<
Type
,
Generator
>{
Pub:
()
=>
pub
,
ProcessManager:
()
=>
FakeProcessManager
.
any
(),
...
...
@@ -66,11 +66,11 @@ void main() {
await
commandRunner
.
run
(<
String
>[
'get'
]);
expect
(
await
command
.
usageValues
,
<
CustomDimensions
,
Object
>{
CustomDimensions
.
commandPackagesNumberPlugins
:
'0'
,
CustomDimensions
.
commandPackagesProjectModule
:
'false'
,
CustomDimensions
.
commandPackagesAndroidEmbeddingVersion
:
'v1'
}
);
expect
(
await
command
.
usageValues
,
const
CustomDimensions
(
commandPackagesNumberPlugins:
0
,
commandPackagesProjectModule:
false
,
commandPackagesAndroidEmbeddingVersion:
'v1'
,
)
);
},
overrides:
<
Type
,
Generator
>{
Pub:
()
=>
pub
,
ProcessManager:
()
=>
FakeProcessManager
.
any
(),
...
...
@@ -86,11 +86,11 @@ void main() {
await
commandRunner
.
run
(<
String
>[
'get'
]);
expect
(
await
command
.
usageValues
,
<
CustomDimensions
,
Object
>{
CustomDimensions
.
commandPackagesNumberPlugins
:
'0'
,
CustomDimensions
.
commandPackagesProjectModule
:
'false'
,
CustomDimensions
.
commandPackagesAndroidEmbeddingVersion
:
'v1'
}
);
expect
(
await
command
.
usageValues
,
const
CustomDimensions
(
commandPackagesNumberPlugins:
0
,
commandPackagesProjectModule:
false
,
commandPackagesAndroidEmbeddingVersion:
'v1'
,
)
);
},
overrides:
<
Type
,
Generator
>{
Pub:
()
=>
pub
,
ProcessManager:
()
=>
FakeProcessManager
.
any
(),
...
...
packages/flutter_tools/test/commands.shard/hermetic/run_test.dart
View file @
2acd0007
...
...
@@ -368,10 +368,10 @@ void main() {
]),
isNull
);
expect
(
usage
.
commands
,
contains
(
const
TestUsageCommand
(
'run'
,
parameters:
<
String
,
String
>{
TestUsageCommand
(
'run'
,
parameters:
CustomDimensions
.
fromMap
(
<
String
,
String
>{
'cd3'
:
'false'
,
'cd4'
:
'ios'
,
'cd22'
:
'iOS 13'
,
'cd23'
:
'debug'
,
'cd18'
:
'false'
,
'cd15'
:
'swift'
,
'cd31'
:
'false'
,
}
}
)
)));
},
overrides:
<
Type
,
Generator
>{
Artifacts:
()
=>
artifacts
,
...
...
packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart
View file @
2acd0007
...
...
@@ -55,8 +55,7 @@ void main() {
arguments:
<
String
>[
'--no-pub'
,
'--template=module'
]);
final
BuildAarCommand
command
=
await
runCommandIn
(
projectPath
);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildAarProjectType
,
'module'
));
expect
((
await
command
.
usageValues
).
commandBuildAarProjectType
,
'module'
);
},
overrides:
<
Type
,
Generator
>{
AndroidBuilder:
()
=>
FakeAndroidBuilder
(),
...
...
@@ -67,8 +66,7 @@ void main() {
arguments:
<
String
>[
'--no-pub'
,
'--template=plugin'
,
'--project-name=aar_test'
]);
final
BuildAarCommand
command
=
await
runCommandIn
(
projectPath
);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildAarProjectType
,
'plugin'
));
expect
((
await
command
.
usageValues
).
commandBuildAarProjectType
,
'plugin'
);
},
overrides:
<
Type
,
Generator
>{
AndroidBuilder:
()
=>
FakeAndroidBuilder
(),
...
...
@@ -80,8 +78,7 @@ void main() {
final
BuildAarCommand
command
=
await
runCommandIn
(
projectPath
,
arguments:
<
String
>[
'--target-platform=android-arm'
]);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildAarTargetPlatform
,
'android-arm'
));
expect
((
await
command
.
usageValues
).
commandBuildAarTargetPlatform
,
'android-arm'
);
},
overrides:
<
Type
,
Generator
>{
AndroidBuilder:
()
=>
FakeAndroidBuilder
(),
...
...
packages/flutter_tools/test/commands.shard/permeable/build_apk_test.dart
View file @
2acd0007
...
...
@@ -43,8 +43,7 @@ void main() {
arguments:
<
String
>[
'--no-pub'
,
'--template=app'
]);
final
BuildApkCommand
command
=
await
runBuildApkCommand
(
projectPath
);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildApkTargetPlatform
,
'android-arm,android-arm64,android-x64'
));
expect
((
await
command
.
usageValues
).
commandBuildApkTargetPlatform
,
'android-arm,android-arm64,android-x64'
);
},
overrides:
<
Type
,
Generator
>{
AndroidBuilder:
()
=>
FakeAndroidBuilder
(),
...
...
@@ -56,12 +55,10 @@ void main() {
final
BuildApkCommand
commandWithFlag
=
await
runBuildApkCommand
(
projectPath
,
arguments:
<
String
>[
'--split-per-abi'
]);
expect
(
await
commandWithFlag
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildApkSplitPerAbi
,
'true'
));
expect
((
await
commandWithFlag
.
usageValues
).
commandBuildApkSplitPerAbi
,
true
);
final
BuildApkCommand
commandWithoutFlag
=
await
runBuildApkCommand
(
projectPath
);
expect
(
await
commandWithoutFlag
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildApkSplitPerAbi
,
'false'
));
expect
((
await
commandWithoutFlag
.
usageValues
).
commandBuildApkSplitPerAbi
,
false
);
},
overrides:
<
Type
,
Generator
>{
AndroidBuilder:
()
=>
FakeAndroidBuilder
(),
...
...
@@ -72,23 +69,19 @@ void main() {
arguments:
<
String
>[
'--no-pub'
,
'--template=app'
]);
final
BuildApkCommand
commandDefault
=
await
runBuildApkCommand
(
projectPath
);
expect
(
await
commandDefault
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildApkBuildMode
,
'release'
));
expect
((
await
commandDefault
.
usageValues
).
commandBuildApkBuildMode
,
'release'
);
final
BuildApkCommand
commandInRelease
=
await
runBuildApkCommand
(
projectPath
,
arguments:
<
String
>[
'--release'
]);
expect
(
await
commandInRelease
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildApkBuildMode
,
'release'
));
expect
((
await
commandInRelease
.
usageValues
).
commandBuildApkBuildMode
,
'release'
);
final
BuildApkCommand
commandInDebug
=
await
runBuildApkCommand
(
projectPath
,
arguments:
<
String
>[
'--debug'
]);
expect
(
await
commandInDebug
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildApkBuildMode
,
'debug'
));
expect
((
await
commandInDebug
.
usageValues
).
commandBuildApkBuildMode
,
'debug'
);
final
BuildApkCommand
commandInProfile
=
await
runBuildApkCommand
(
projectPath
,
arguments:
<
String
>[
'--profile'
]);
expect
(
await
commandInProfile
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildApkBuildMode
,
'profile'
));
expect
((
await
commandInProfile
.
usageValues
).
commandBuildApkBuildMode
,
'profile'
);
},
overrides:
<
Type
,
Generator
>{
AndroidBuilder:
()
=>
FakeAndroidBuilder
(),
...
...
@@ -315,7 +308,7 @@ void main() {
'build'
,
'gradle'
,
label:
'gradle-r8-failure'
,
parameters:
<
String
,
String
>{}
,
parameters:
CustomDimensions
()
,
),
));
expect
(
processManager
,
hasNoRemainingExpectations
);
...
...
@@ -368,7 +361,7 @@ void main() {
'build'
,
'gradle'
,
label:
'app-not-using-android-x'
,
parameters:
<
String
,
String
>{}
,
parameters:
CustomDimensions
()
,
),
));
expect
(
processManager
,
hasNoRemainingExpectations
);
...
...
@@ -414,7 +407,7 @@ void main() {
'build'
,
'gradle'
,
label:
'app-using-android-x'
,
parameters:
<
String
,
String
>{}
,
parameters:
CustomDimensions
()
,
),
));
expect
(
processManager
,
hasNoRemainingExpectations
);
...
...
packages/flutter_tools/test/commands.shard/permeable/build_appbundle_test.dart
View file @
2acd0007
...
...
@@ -41,8 +41,7 @@ void main() {
arguments:
<
String
>[
'--no-pub'
,
'--template=app'
]);
final
BuildAppBundleCommand
command
=
await
runBuildAppBundleCommand
(
projectPath
);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildAppBundleTargetPlatform
,
'android-arm,android-arm64,android-x64'
));
expect
((
await
command
.
usageValues
).
commandBuildAppBundleTargetPlatform
,
'android-arm,android-arm64,android-x64'
);
},
overrides:
<
Type
,
Generator
>{
AndroidBuilder:
()
=>
FakeAndroidBuilder
(),
...
...
@@ -53,23 +52,19 @@ void main() {
arguments:
<
String
>[
'--no-pub'
,
'--template=app'
]);
final
BuildAppBundleCommand
commandDefault
=
await
runBuildAppBundleCommand
(
projectPath
);
expect
(
await
commandDefault
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildAppBundleBuildMode
,
'release'
));
expect
((
await
commandDefault
.
usageValues
).
commandBuildAppBundleBuildMode
,
'release'
);
final
BuildAppBundleCommand
commandInRelease
=
await
runBuildAppBundleCommand
(
projectPath
,
arguments:
<
String
>[
'--release'
]);
expect
(
await
commandInRelease
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildAppBundleBuildMode
,
'release'
));
expect
((
await
commandInRelease
.
usageValues
).
commandBuildAppBundleBuildMode
,
'release'
);
final
BuildAppBundleCommand
commandInDebug
=
await
runBuildAppBundleCommand
(
projectPath
,
arguments:
<
String
>[
'--debug'
]);
expect
(
await
commandInDebug
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildAppBundleBuildMode
,
'debug'
));
expect
((
await
commandInDebug
.
usageValues
).
commandBuildAppBundleBuildMode
,
'debug'
);
final
BuildAppBundleCommand
commandInProfile
=
await
runBuildAppBundleCommand
(
projectPath
,
arguments:
<
String
>[
'--profile'
]);
expect
(
await
commandInProfile
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildAppBundleBuildMode
,
'profile'
));
expect
((
await
commandInProfile
.
usageValues
).
commandBuildAppBundleBuildMode
,
'profile'
);
},
overrides:
<
Type
,
Generator
>{
AndroidBuilder:
()
=>
FakeAndroidBuilder
(),
...
...
@@ -163,7 +158,7 @@ void main() {
'build'
,
'gradle'
,
label:
'app-not-using-android-x'
,
parameters:
<
String
,
String
>{}
,
parameters:
CustomDimensions
()
,
),
));
},
...
...
@@ -203,7 +198,7 @@ void main() {
'build'
,
'gradle'
,
label:
'app-using-android-x'
,
parameters:
<
String
,
String
>{}
,
parameters:
CustomDimensions
()
,
),
));
},
...
...
packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart
View file @
2acd0007
...
...
@@ -15,7 +15,6 @@ import 'package:flutter_tools/src/commands/build_bundle.dart';
import
'package:flutter_tools/src/features.dart'
;
import
'package:flutter_tools/src/globals_null_migrated.dart'
as
globals
;
import
'package:flutter_tools/src/project.dart'
;
import
'package:flutter_tools/src/reporting/reporting.dart'
;
import
'package:meta/meta.dart'
;
import
'package:test/fake.dart'
;
...
...
@@ -58,8 +57,7 @@ void main() {
final
BuildBundleCommand
command
=
await
runCommandIn
(
projectPath
);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildBundleIsModule
,
'true'
));
expect
((
await
command
.
usageValues
).
commandBuildBundleIsModule
,
true
);
});
testUsingContext
(
'bundle getUsage indicate that project is not a module'
,
()
async
{
...
...
@@ -68,8 +66,7 @@ void main() {
final
BuildBundleCommand
command
=
await
runCommandIn
(
projectPath
);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildBundleIsModule
,
'false'
));
expect
((
await
command
.
usageValues
).
commandBuildBundleIsModule
,
false
);
});
testUsingContext
(
'bundle getUsage indicate the target platform'
,
()
async
{
...
...
@@ -78,8 +75,7 @@ void main() {
final
BuildBundleCommand
command
=
await
runCommandIn
(
projectPath
);
expect
(
await
command
.
usageValues
,
containsPair
(
CustomDimensions
.
commandBuildBundleTargetPlatform
,
'android-arm'
));
expect
((
await
command
.
usageValues
).
commandBuildBundleTargetPlatform
,
'android-arm'
);
});
testUsingContext
(
'bundle fails to build for Windows if feature is disabled'
,
()
async
{
...
...
packages/flutter_tools/test/commands.shard/permeable/packages_test.dart
View file @
2acd0007
...
...
@@ -18,7 +18,6 @@ import 'package:flutter_tools/src/cache.dart';
import
'package:flutter_tools/src/commands/packages.dart'
;
import
'package:flutter_tools/src/dart/pub.dart'
;
import
'package:flutter_tools/src/globals_null_migrated.dart'
as
globals
;
import
'package:flutter_tools/src/reporting/reporting.dart'
;
import
'../../src/common.dart'
;
import
'../../src/context.dart'
;
...
...
@@ -240,8 +239,7 @@ void main() {
final
PackagesCommand
command
=
await
runCommandIn
(
projectPath
,
'get'
);
final
PackagesGetCommand
getCommand
=
command
.
subcommands
[
'get'
]
as
PackagesGetCommand
;
expect
(
await
getCommand
.
usageValues
,
containsPair
(
CustomDimensions
.
commandPackagesNumberPlugins
,
'0'
));
expect
((
await
getCommand
.
usageValues
).
commandPackagesNumberPlugins
,
0
);
},
overrides:
<
Type
,
Generator
>{
Pub:
()
=>
Pub
(
fileSystem:
globals
.
fs
,
...
...
@@ -263,8 +261,7 @@ void main() {
final
PackagesCommand
command
=
await
runCommandIn
(
exampleProjectPath
,
'get'
);
final
PackagesGetCommand
getCommand
=
command
.
subcommands
[
'get'
]
as
PackagesGetCommand
;
expect
(
await
getCommand
.
usageValues
,
containsPair
(
CustomDimensions
.
commandPackagesNumberPlugins
,
'1'
));
expect
((
await
getCommand
.
usageValues
).
commandPackagesNumberPlugins
,
1
);
},
overrides:
<
Type
,
Generator
>{
Pub:
()
=>
Pub
(
fileSystem:
globals
.
fs
,
...
...
@@ -284,8 +281,7 @@ void main() {
final
PackagesCommand
command
=
await
runCommandIn
(
projectPath
,
'get'
);
final
PackagesGetCommand
getCommand
=
command
.
subcommands
[
'get'
]
as
PackagesGetCommand
;
expect
(
await
getCommand
.
usageValues
,
containsPair
(
CustomDimensions
.
commandPackagesProjectModule
,
'false'
));
expect
((
await
getCommand
.
usageValues
).
commandPackagesProjectModule
,
false
);
},
overrides:
<
Type
,
Generator
>{
Pub:
()
=>
Pub
(
fileSystem:
globals
.
fs
,
...
...
@@ -305,8 +301,7 @@ void main() {
final
PackagesCommand
command
=
await
runCommandIn
(
projectPath
,
'get'
);
final
PackagesGetCommand
getCommand
=
command
.
subcommands
[
'get'
]
as
PackagesGetCommand
;
expect
(
await
getCommand
.
usageValues
,
containsPair
(
CustomDimensions
.
commandPackagesProjectModule
,
'true'
));
expect
((
await
getCommand
.
usageValues
).
commandPackagesProjectModule
,
true
);
},
overrides:
<
Type
,
Generator
>{
Pub:
()
=>
Pub
(
fileSystem:
globals
.
fs
,
...
...
@@ -335,8 +330,7 @@ void main() {
final
PackagesCommand
command
=
await
runCommandIn
(
projectPath
,
'get'
);
final
PackagesGetCommand
getCommand
=
command
.
subcommands
[
'get'
]
as
PackagesGetCommand
;
expect
(
await
getCommand
.
usageValues
,
containsPair
(
CustomDimensions
.
commandPackagesAndroidEmbeddingVersion
,
'v1'
));
expect
((
await
getCommand
.
usageValues
).
commandPackagesAndroidEmbeddingVersion
,
'v1'
);
},
overrides:
<
Type
,
Generator
>{
Pub:
()
=>
Pub
(
fileSystem:
globals
.
fs
,
...
...
@@ -356,8 +350,7 @@ void main() {
final
PackagesCommand
command
=
await
runCommandIn
(
projectPath
,
'get'
);
final
PackagesGetCommand
getCommand
=
command
.
subcommands
[
'get'
]
as
PackagesGetCommand
;
expect
(
await
getCommand
.
usageValues
,
containsPair
(
CustomDimensions
.
commandPackagesAndroidEmbeddingVersion
,
'v2'
));
expect
((
await
getCommand
.
usageValues
).
commandPackagesAndroidEmbeddingVersion
,
'v2'
);
},
overrides:
<
Type
,
Generator
>{
Pub:
()
=>
Pub
(
fileSystem:
globals
.
fs
,
...
...
packages/flutter_tools/test/general.shard/analytics_test.dart
View file @
2acd0007
...
...
@@ -111,7 +111,7 @@ void main() {
final
Usage
usage
=
Usage
(
runningOnBot:
true
);
usage
.
sendCommand
(
'test'
);
final
String
featuresKey
=
cdKey
(
CustomDimensions
.
enabledFlutterFeatures
);
final
String
featuresKey
=
cdKey
(
CustomDimensions
Enum
.
enabledFlutterFeatures
);
expect
(
globals
.
fs
.
file
(
'test'
).
readAsStringSync
(),
contains
(
'
$featuresKey
: enable-web'
));
},
overrides:
<
Type
,
Generator
>{
...
...
@@ -131,7 +131,7 @@ void main() {
final
Usage
usage
=
Usage
(
runningOnBot:
true
);
usage
.
sendCommand
(
'test'
);
final
String
featuresKey
=
cdKey
(
CustomDimensions
.
enabledFlutterFeatures
);
final
String
featuresKey
=
cdKey
(
CustomDimensions
Enum
.
enabledFlutterFeatures
);
expect
(
globals
.
fs
.
file
(
'test'
).
readAsStringSync
(),
...
...
packages/flutter_tools/test/general.shard/android/android_gradle_builder_test.dart
View file @
2acd0007
...
...
@@ -122,7 +122,7 @@ void main() {
'build'
,
'gradle'
,
label:
'gradle-random-event-label-failure'
,
parameters:
<
String
,
String
>{}
,
parameters:
CustomDimensions
()
,
),
));
});
...
...
@@ -224,7 +224,7 @@ void main() {
'build'
,
'gradle'
,
label:
'gradle-random-event-label-failure'
,
parameters:
<
String
,
String
>{}
,
parameters:
CustomDimensions
()
,
),
));
});
...
...
@@ -311,7 +311,7 @@ void main() {
'build'
,
'gradle'
,
label:
'gradle-random-event-label-failure'
,
parameters:
<
String
,
String
>{}
,
parameters:
CustomDimensions
()
,
),
));
});
...
...
@@ -467,7 +467,7 @@ void main() {
'build'
,
'gradle'
,
label:
'gradle-random-event-label-success'
,
parameters:
<
String
,
String
>{}
,
parameters:
CustomDimensions
()
,
),
));
expect
(
processManager
,
hasNoRemainingExpectations
);
...
...
@@ -675,7 +675,7 @@ void main() {
'build'
,
'gradle'
,
label:
'gradle-random-event-label-failure'
,
parameters:
<
String
,
String
>{}
,
parameters:
CustomDimensions
()
,
),
));
expect
(
processManager
,
hasNoRemainingExpectations
);
...
...
packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart
View file @
2acd0007
...
...
@@ -355,13 +355,13 @@ Command: /home/android/gradlew assembleRelease
.handler(line: '', project: FlutterProject.fromDirectoryTest(globals.fs.currentDirectory));
expect(testUsage.events, contains(
const
TestUsageEvent(
TestUsageEvent(
'
build
',
'
gradle
',
label: '
gradle
-
android
-
x
-
failure
',
parameters: <String, String>{
parameters:
CustomDimensions.fromMap(
<String, String>{
'
cd43
': '
app
-
not
-
using
-
plugins
',
},
}
)
,
),
));
...
...
@@ -390,13 +390,13 @@ Command: /home/android/gradlew assembleRelease
);
expect
(
testUsage
.
events
,
contains
(
const
TestUsageEvent
(
TestUsageEvent
(
'build'
,
'gradle'
,
label:
'gradle-android-x-failure'
,
parameters:
<
String
,
String
>{
parameters:
CustomDimensions
.
fromMap
(
<
String
,
String
>{
'cd43'
:
'app-not-using-androidx'
,
},
}
)
,
),
));
...
...
@@ -418,13 +418,13 @@ Command: /home/android/gradlew assembleRelease
);
expect
(
testUsage
.
events
,
contains
(
const
TestUsageEvent
(
TestUsageEvent
(
'build'
,
'gradle'
,
label:
'gradle-android-x-failure'
,
parameters:
<
String
,
String
>{
parameters:
CustomDimensions
.
fromMap
(
<
String
,
String
>{
'cd43'
:
'using-jetifier'
,
},
}
)
,
),
));
...
...
@@ -453,13 +453,13 @@ Command: /home/android/gradlew assembleRelease
);
expect
(
testUsage
.
events
,
contains
(
const
TestUsageEvent
(
TestUsageEvent
(
'build'
,
'gradle'
,
label:
'gradle-android-x-failure'
,
parameters:
<
String
,
String
>{
parameters:
CustomDimensions
.
fromMap
(
<
String
,
String
>{
'cd43'
:
'not-using-jetifier'
,
},
}
)
,
),
));
expect
(
status
,
equals
(
GradleBuildStatus
.
retryWithAarPlugins
));
...
...
packages/flutter_tools/test/general.shard/android/gradle_find_bundle_test.dart
View file @
2acd0007
...
...
@@ -326,13 +326,13 @@ void main() {
)
);
expect
(
testUsage
.
events
,
contains
(
const
TestUsageEvent
(
TestUsageEvent
(
'build'
,
'gradle'
,
label:
'gradle-expected-file-not-found'
,
parameters:
<
String
,
String
>
{
parameters:
CustomDimensions
.
fromMap
(
<
String
,
String
>
{
'cd37'
:
'androidGradlePluginVersion: 6.7, fileExtension: .aab'
,
},
}
)
,
),
));
});
...
...
packages/flutter_tools/test/general.shard/ios/mac_test.dart
View file @
2acd0007
...
...
@@ -160,10 +160,10 @@ void main() {
'build'
,
'ios'
,
label:
'xcode-bitcode-failure'
,
parameters:
<
String
,
String
>{
cdKey
(
CustomDimensions
.
buildEventCommand
)
:
buildCommands
.
toString
(),
cdKey
(
CustomDimensions
.
buildEventSettings
)
:
buildSettings
.
toString
(),
}
,
parameters:
CustomDimensions
(
buildEventCommand
:
buildCommands
.
toString
(),
buildEventSettings
:
buildSettings
.
toString
(),
)
,
),
));
});
...
...
packages/flutter_tools/test/general.shard/reporting/events_test.dart
View file @
2acd0007
...
...
@@ -74,9 +74,9 @@ void main() {
expect
(
usage
.
events
,
unorderedEquals
(<
TestUsageEvent
>[
const
TestUsageEvent
(
NullSafetyAnalysisEvent
.
kNullSafetyCategory
,
'runtime-mode'
,
label:
'NullSafetyMode.sound'
),
const
TestUsageEvent
(
NullSafetyAnalysisEvent
.
kNullSafetyCategory
,
'stats'
,
parameters:
<
String
,
String
>{
TestUsageEvent
(
NullSafetyAnalysisEvent
.
kNullSafetyCategory
,
'stats'
,
parameters:
CustomDimensions
.
fromMap
(
<
String
,
String
>{
'cd49'
:
'1'
,
'cd50'
:
'3'
,
}),
})
)
,
const
TestUsageEvent
(
NullSafetyAnalysisEvent
.
kNullSafetyCategory
,
'language-version'
,
label:
'2.12'
),
]));
});
...
...
@@ -98,9 +98,9 @@ void main() {
expect
(
usage
.
events
,
unorderedEquals
(<
TestUsageEvent
>[
const
TestUsageEvent
(
NullSafetyAnalysisEvent
.
kNullSafetyCategory
,
'runtime-mode'
,
label:
'NullSafetyMode.sound'
),
const
TestUsageEvent
(
NullSafetyAnalysisEvent
.
kNullSafetyCategory
,
'stats'
,
parameters:
<
String
,
String
>{
TestUsageEvent
(
NullSafetyAnalysisEvent
.
kNullSafetyCategory
,
'stats'
,
parameters:
CustomDimensions
.
fromMap
(
<
String
,
String
>{
'cd49'
:
'1'
,
'cd50'
:
'3'
,
}),
})
)
,
]));
});
...
...
@@ -119,9 +119,9 @@ void main() {
expect
(
usage
.
events
,
unorderedEquals
(<
TestUsageEvent
>[
const
TestUsageEvent
(
NullSafetyAnalysisEvent
.
kNullSafetyCategory
,
'runtime-mode'
,
label:
'NullSafetyMode.sound'
),
const
TestUsageEvent
(
NullSafetyAnalysisEvent
.
kNullSafetyCategory
,
'stats'
,
parameters:
<
String
,
String
>{
TestUsageEvent
(
NullSafetyAnalysisEvent
.
kNullSafetyCategory
,
'stats'
,
parameters:
CustomDimensions
.
fromMap
(
<
String
,
String
>{
'cd49'
:
'0'
,
'cd50'
:
'1'
,
}),
})
)
,
]));
});
}
...
...
packages/flutter_tools/test/general.shard/resident_runner_test.dart
View file @
2acd0007
...
...
@@ -550,13 +550,12 @@ void main() {
expect
(
result
.
fatal
,
true
);
expect
(
result
.
code
,
1
);
expect
((
globals
.
flutterUsage
as
TestUsage
).
events
,
contains
(
TestUsageEvent
(
'hot'
,
'exception'
,
parameters:
<
String
,
String
>{
cdKey
(
CustomDimensions
.
hotEventTargetPlatform
):
getNameForTargetPlatform
(
TargetPlatform
.
android_arm
),
cdKey
(
CustomDimensions
.
hotEventSdkName
):
'Android'
,
cdKey
(
CustomDimensions
.
hotEventEmulator
):
'false'
,
cdKey
(
CustomDimensions
.
hotEventFullRestart
):
'false'
,
}),
TestUsageEvent
(
'hot'
,
'exception'
,
parameters:
CustomDimensions
(
hotEventTargetPlatform:
getNameForTargetPlatform
(
TargetPlatform
.
android_arm
),
hotEventSdkName:
'Android'
,
hotEventEmulator:
false
,
hotEventFullRestart:
false
,
)),
));
expect
(
fakeVmServiceHost
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
...
...
@@ -623,13 +622,12 @@ void main() {
expect
(
result
.
message
,
contains
(
'Unable to hot reload application due to an unrecoverable error'
));
expect
((
globals
.
flutterUsage
as
TestUsage
).
events
,
contains
(
TestUsageEvent
(
'hot'
,
'reload-barred'
,
parameters:
<
String
,
String
>{
cdKey
(
CustomDimensions
.
hotEventTargetPlatform
):
getNameForTargetPlatform
(
TargetPlatform
.
android_arm
),
cdKey
(
CustomDimensions
.
hotEventSdkName
):
'Android'
,
cdKey
(
CustomDimensions
.
hotEventEmulator
):
'false'
,
cdKey
(
CustomDimensions
.
hotEventFullRestart
):
'false'
,
}),
TestUsageEvent
(
'hot'
,
'reload-barred'
,
parameters:
CustomDimensions
(
hotEventTargetPlatform:
getNameForTargetPlatform
(
TargetPlatform
.
android_arm
),
hotEventSdkName:
'Android'
,
hotEventEmulator:
false
,
hotEventFullRestart:
false
,
)),
));
expect
(
fakeVmServiceHost
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
...
...
@@ -686,13 +684,12 @@ void main() {
expect
(
result
.
code
,
1
);
expect
((
globals
.
flutterUsage
as
TestUsage
).
events
,
contains
(
TestUsageEvent
(
'hot'
,
'exception'
,
parameters:
<
String
,
String
>{
cdKey
(
CustomDimensions
.
hotEventTargetPlatform
):
getNameForTargetPlatform
(
TargetPlatform
.
android_arm
),
cdKey
(
CustomDimensions
.
hotEventSdkName
):
'Android'
,
cdKey
(
CustomDimensions
.
hotEventEmulator
):
'false'
,
cdKey
(
CustomDimensions
.
hotEventFullRestart
):
'false'
,
}),
TestUsageEvent
(
'hot'
,
'exception'
,
parameters:
CustomDimensions
(
hotEventTargetPlatform:
getNameForTargetPlatform
(
TargetPlatform
.
android_arm
),
hotEventSdkName:
'Android'
,
hotEventEmulator:
false
,
hotEventFullRestart:
false
,
)),
));
expect
(
fakeVmServiceHost
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
...
...
@@ -981,10 +978,7 @@ void main() {
final
TestUsageEvent
event
=
(
globals
.
flutterUsage
as
TestUsage
).
events
.
first
;
expect
(
event
.
category
,
'hot'
);
expect
(
event
.
parameter
,
'reload'
);
expect
(
event
.
parameters
,
containsPair
(
cdKey
(
CustomDimensions
.
hotEventTargetPlatform
),
getNameForTargetPlatform
(
TargetPlatform
.
android_arm
),
));
expect
(
event
.
parameters
.
hotEventTargetPlatform
,
getNameForTargetPlatform
(
TargetPlatform
.
android_arm
));
},
overrides:
<
Type
,
Generator
>{
Usage:
()
=>
TestUsage
(),
}),
overrides:
<
Type
,
Generator
>{
...
...
@@ -1089,9 +1083,7 @@ void main() {
final
TestUsageEvent
event
=
(
globals
.
flutterUsage
as
TestUsage
).
events
.
first
;
expect
(
event
.
category
,
'hot'
);
expect
(
event
.
parameter
,
'reload'
);
expect
(
event
.
parameters
,
containsPair
(
cdKey
(
CustomDimensions
.
fastReassemble
),
'true'
,
));
expect
(
event
.
parameters
.
fastReassemble
,
true
);
},
overrides:
<
Type
,
Generator
>{
FileSystem:
()
=>
MemoryFileSystem
.
test
(),
Platform:
()
=>
FakePlatform
(
operatingSystem:
'linux'
),
...
...
@@ -1157,9 +1149,7 @@ void main() {
final
TestUsageEvent
event
=
(
globals
.
flutterUsage
as
TestUsage
).
events
.
first
;
expect
(
event
.
category
,
'hot'
);
expect
(
event
.
parameter
,
'restart'
);
expect
(
event
.
parameters
,
containsPair
(
cdKey
(
CustomDimensions
.
hotEventTargetPlatform
),
getNameForTargetPlatform
(
TargetPlatform
.
android_arm
),
));
expect
(
event
.
parameters
.
hotEventTargetPlatform
,
getNameForTargetPlatform
(
TargetPlatform
.
android_arm
));
expect
(
fakeVmServiceHost
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
Usage:
()
=>
TestUsage
(),
...
...
@@ -1395,13 +1385,12 @@ void main() {
expect
(
result
.
code
,
1
);
expect
((
globals
.
flutterUsage
as
TestUsage
).
events
,
contains
(
TestUsageEvent
(
'hot'
,
'exception'
,
parameters:
<
String
,
String
>{
cdKey
(
CustomDimensions
.
hotEventTargetPlatform
):
getNameForTargetPlatform
(
TargetPlatform
.
android_arm
),
cdKey
(
CustomDimensions
.
hotEventSdkName
):
'Android'
,
cdKey
(
CustomDimensions
.
hotEventEmulator
):
'false'
,
cdKey
(
CustomDimensions
.
hotEventFullRestart
):
'true'
,
}),
TestUsageEvent
(
'hot'
,
'exception'
,
parameters:
CustomDimensions
(
hotEventTargetPlatform:
getNameForTargetPlatform
(
TargetPlatform
.
android_arm
),
hotEventSdkName:
'Android'
,
hotEventEmulator:
false
,
hotEventFullRestart:
true
,
)),
));
expect
(
fakeVmServiceHost
.
hasRemainingExpectations
,
false
);
},
overrides:
<
Type
,
Generator
>{
...
...
packages/flutter_tools/test/general.shard/resident_web_runner_test.dart
View file @
2acd0007
...
...
@@ -580,8 +580,8 @@ void main() {
verify
(
mockResidentCompiler
.
accept
()).
called
(
2
);
// ensure that analytics are sent.
expect
(
testUsage
.
events
,
const
<
TestUsageEvent
>[
TestUsageEvent
(
'hot'
,
'restart'
,
parameters:
<
String
,
String
>{
'cd27'
:
'web-javascript'
,
'cd28'
:
''
,
'cd29'
:
'false'
,
'cd30'
:
'true'
,
'cd13'
:
'0'
}
),
expect
(
testUsage
.
events
,
<
TestUsageEvent
>[
TestUsageEvent
(
'hot'
,
'restart'
,
parameters:
CustomDimensions
.
fromMap
(<
String
,
String
>{
'cd27'
:
'web-javascript'
,
'cd28'
:
''
,
'cd29'
:
'false'
,
'cd30'
:
'true'
,
'cd13'
:
'0'
})
),
]);
expect
(
testUsage
.
timings
,
const
<
TestTimingEvent
>[
TestTimingEvent
(
'hot'
,
'web-incremental-restart'
,
Duration
.
zero
),
...
...
@@ -658,8 +658,8 @@ void main() {
verify
(
mockResidentCompiler
.
accept
()).
called
(
2
);
// ensure that analytics are sent.
expect
(
testUsage
.
events
,
const
<
TestUsageEvent
>[
TestUsageEvent
(
'hot'
,
'restart'
,
parameters:
<
String
,
String
>{
'cd27'
:
'web-javascript'
,
'cd28'
:
''
,
'cd29'
:
'false'
,
'cd30'
:
'true'
,
'cd13'
:
'0'
}
),
expect
(
testUsage
.
events
,
<
TestUsageEvent
>[
TestUsageEvent
(
'hot'
,
'restart'
,
parameters:
CustomDimensions
.
fromMap
(<
String
,
String
>{
'cd27'
:
'web-javascript'
,
'cd28'
:
''
,
'cd29'
:
'false'
,
'cd30'
:
'true'
,
'cd13'
:
'0'
})
),
]);
expect
(
testUsage
.
timings
,
const
<
TestTimingEvent
>[
TestTimingEvent
(
'hot'
,
'web-incremental-restart'
,
Duration
.
zero
),
...
...
packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart
View file @
2acd0007
...
...
@@ -483,12 +483,12 @@ void main() {
'runtime-mode'
,
label:
'NullSafetyMode.sound'
,
),
const
TestUsageEvent
(
TestUsageEvent
(
NullSafetyAnalysisEvent
.
kNullSafetyCategory
,
'stats'
,
parameters:
<
String
,
String
>{
parameters:
CustomDimensions
.
fromMap
(
<
String
,
String
>{
'cd49'
:
'1'
,
'cd50'
:
'1'
,
},
}
)
,
),
const
TestUsageEvent
(
NullSafetyAnalysisEvent
.
kNullSafetyCategory
,
...
...
packages/flutter_tools/test/general.shard/runner/runner_test.dart
View file @
2acd0007
...
...
@@ -282,7 +282,7 @@ class CrashingUsage implements Usage {
String
get
clientId
=>
_impl
.
clientId
;
@override
void
sendCommand
(
String
command
,
{
Map
<
String
,
String
>
parameters
})
=>
void
sendCommand
(
String
command
,
{
CustomDimensions
parameters
})
=>
_impl
.
sendCommand
(
command
,
parameters:
parameters
);
@override
...
...
@@ -291,7 +291,7 @@ class CrashingUsage implements Usage {
String
parameter
,
{
String
label
,
int
value
,
Map
<
String
,
String
>
parameters
,
CustomDimensions
parameters
,
})
=>
_impl
.
sendEvent
(
category
,
parameter
,
...
...
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