Commit Graph

447 Commits

Author SHA1 Message Date
Mehmet Fidanboylu
c19e553d64 Allow test beds to override defaultTestTimeout (#40806) 2019-09-24 16:53:40 -07:00
Greg Spencer
0e6cb28dbe
Add fake keyboard key generation to the testing framework (#40706)
There were four or five different implementations in various tests for sendFakeKeyEvent, which roughly all did the same thing. I was going to add yet another one, and decided that it needed to be generalized and centralized. This replaces those instances with something that just takes a LogicalKeyboardKey so that it's self-documenting, and can be used with multiple platforms.

This adds two functions to widget tester: sendKeyDownEvent and sendKeyUpEvent which simulate key up/down from a physical keyboard. It also adds global functions simulateKeyDownEvent and simulateKeyUpEvent that can be called without a widget tester. All are async functions protected by the async guard.
2019-09-24 08:14:38 -07:00
Michael Goderbauer
4373a31971
Reapply "Revert "Propagate textfield character limits to semantics (#40468)" (#40767) 2019-09-18 14:55:37 -07:00
Michael Goderbauer
b4324aed59
Revert "Propagate textfield character limits to semantics (#40468)" (#40714)
This reverts commit 6ad88bd5c0.
2019-09-17 16:37:11 -07:00
Michael Goderbauer
6ad88bd5c0
Propagate textfield character limits to semantics (#40468) 2019-09-17 14:39:50 -07:00
Alexandre Ardhuin
df4bf453ab
more UI-as-code (#35516) 2019-09-17 16:23:44 +02:00
Kate Lovett
e62c68c243
Fix for broken LocalFileComparator output (#40399)
* Fixing LocalFileComparator output

* Fixing path separators for windows failures

* Windows path issues

* Testing

* ++

* ++

* Fixing base directory - windows

* Clean up
2019-09-16 13:14:46 -07:00
Jonah Williams
18ffb0fbc3
place conditions on same line (#40391) 2019-09-12 18:30:24 -07:00
Jonah Williams
8504f3ae13
Update the supported library set for Flutter for web (#39983) 2019-09-10 17:27:30 -07:00
chunhtai
57d714ebb8
fix widget built twice during warm up frame (#39079) 2019-09-06 09:46:18 -07:00
Michael Goderbauer
e2325600ea
Do not render any frames when just initializing Bindings (#39535) 2019-09-05 17:08:50 -07:00
Ian Hickson
a415c76b5b
Docs (#39198)
* Minor improvements to framework documentation.

* maybePop documentation fix

* Mark some flutter_test arguments required.

Without these set, we get a crash.

* Minor correction to ListView docs
2019-09-05 15:11:50 -07:00
liyuqian
7c0dfd5362
Revert "Replace deprecated onReportTimings w/ frameTimings (#38861)" (#39778)
This reverts commit 6ef80b447f.
2019-09-05 09:58:08 -07:00
Kate Lovett
c8af729d1c
Golden Doc Updates (#39082) 2019-09-03 08:45:51 -07:00
Jonah Williams
7bc4074ff3
use dpr and window size from binding (#39577) 2019-09-01 23:57:32 -07:00
liyuqian
6ef80b447f
Replace deprecated onReportTimings w/ frameTimings (#38861)
This is the continuation of https://github.com/flutter/engine/pull/11041 and https://github.com/flutter/flutter/pull/38574

This is not a breaking change as we're not removing `onReportTimings` API.
We're simply removing the use of it in our framework.
2019-08-28 15:25:06 -07:00
adazh
5667b78291
Added a Driver wait condition for no pending platform messages (#39196) 2019-08-27 14:26:31 -07:00
Shi-Hao Hong
3b7410476f
Add MediaQuery.systemGestureInsets to support Android Q (#37416)
* Wire Window.systemGestureInsets to MediaQuery.systemGestureInsets

* Add systemGestureInsets property to TestWindow
2019-08-22 00:34:11 -04:00
adazh
93c32c4ff6
Moved the default BinaryMessenger instance to ServicesBinding (#38464)
* Moved the default BinaryMessenger instance to ServicesBinding

This reverts commit 821602aef3.

* Added assertion in defaultBinaryMessenger. Also fixed the devicelab tests.
2019-08-21 16:47:42 -07:00
James D. Lin
b2f8d3a668
Instrument pending timers in tests (#37646)
Flutter widget tests assert if a test completes with timers still
pending.  However, it can be hard to diagnose where a pending timer
came from.  For example, a widget might consume a third-party library
that internally uses a timer.

I added a FakeAsync.pendingTimersDebugInfo getter to quiver
(https://github.com/google/quiver-dart/pull/500).  Make flutter_test
use it.

Additionally modify Flutter's debugPrintStack to take an optional
StackTrace argument instead of always printing StackTrace.current.

Fixes #4237.
2019-08-20 10:28:49 -07:00
Kaushik Iska
d2bc74aa6d
Fix analyzer issues for onReportTiming to frameTiming (#38840)
Filed: https://github.com/flutter/flutter/issues/38838
to track these usages.

This was introduced by: https://github.com/flutter/engine/pull/11041
2019-08-19 14:56:22 -07:00
Kate Lovett
6ff212b328
Comparing pixels instead of bytes with GoldenFileComparator (#38473) 2019-08-19 09:06:22 -07:00
Yegor
34c692659e
Teach render objects to reuse engine layers (#36402)
Teach Layer and its implementations, RenderObject and its implementations, and PaintingContext to reuse engine layers. The idea is that a concrete RenderObject creates a Layer and holds on to it as long as it needs it (i.e. when it is composited, and the layer type does not change). In return, each Layer object holds on to an EngineLayer and reports it to the engine via addRetained and oldLayer. This allows the Web engine to reuse DOM elements across frames. Without it, each frame drops all previously rendered HTML and regenerates it from scratch.
2019-08-16 15:27:12 -07:00
Kate Lovett
cac8fa5da0
Re-land 'Adding physicalDepth to MediaQueryData & TestWindow' (#38546) 2019-08-16 13:34:23 -07:00
Nurhan Turgut
c2e2f093ec
Navigator change backup (#38494)
* Broadcasting popRoute and pushRoute methods via SystemChannels.navigation. These messages will be used in flutter_web to detect the route

* Broadcasting popRoute and pushRoute methods via SystemChannels.navigation. These messages will be used in flutter_web to detect the route

* Reverting all unrelated formatting changes.

* Adding unit tests. Adding more comments.

* Changing string method names with constant strings.

* Fixing a constant strings.

* Fixing analyzer error.

* Fixing more white space.

* Changing the method names. Adding comments to the SystemChannels

* Comment and code name fixes

* replacing the comment with reviewer suggestion.

* addinf systemchannels.navigation mock to test bindings

* Adding a new class for sending route change notrifications. The nottifications are only sent on web. This should fix breaking android/ios

* using new class RouteNotificationMessages in navigator

* Fixing analyzer issues.

* fixing cycle dependency

* fixing github analyze error

* dartfmt two new classes. trying to fix anayze errors

* Update route_notification_messages.dart

* trying to fix white space errors
2019-08-16 13:17:45 -07:00
Michael Klimushyn
821602aef3
Revert "Moved the default BinaryMessenger instance to ServicesBinding (#37489)" (#37983)
This reverts commit 92ef2b9ce1.

This requires either runApp() or
WidgetsFlutterBinding.ensureInitialized() to have been called before
using any MethodChannels. Plugins broadly rely on MethodChannels and
right now there's no general requirements that they be constructed
within the runApp call, so the ecosystem breakages from this are broader
than originally thought. Reverting for now.
2019-08-09 16:30:30 -07:00
Kate Lovett
f3dbefd3ce
Revert "Adding physicalDepth to MediaQueryData & TestWindow (#37718)" (#37938)
This reverts commit 3a2d30813a.
2019-08-09 12:58:59 -07:00
adazh
92ef2b9ce1
Moved the default BinaryMessenger instance to ServicesBinding (#37489) 2019-08-09 10:13:40 -07:00
Jonah Williams
ba8f0bbb0d
remove references to solo flag (#37856) 2019-08-08 16:37:18 -07:00
Kate Lovett
3a2d30813a
Adding physicalDepth to MediaQueryData & TestWindow (#37718) 2019-08-07 13:52:16 -07:00
Dan Field
84fe2adedb
Nosuchmethod window (#37417) 2019-08-01 20:04:49 -07:00
Kate Lovett
616794fca7
Re-land "Part 1: Skia Gold Testing" (#36103) 2019-07-28 12:26:06 -07:00
Lau Ching Jun
677b7c15c3
Load assets during test from file system instead of manifest. (#36553) 2019-07-19 14:54:24 -07:00
Mouad Debbar
9c9b71a0fb
Add multi-line flag to semantics (#36297) 2019-07-18 10:36:22 -07:00
chunhtai
1166015931
Enable widget load assets in its own package in test (#35991) 2019-07-16 09:47:42 -07:00
Kate Lovett
8809f698cb
Revert "Part 1: Skia Gold Testing (#33688)" (#36094)
This reverts commit eb0b179028.
Skia Gold post-submit test were failing due to the service account not being found on Cirrus.
2019-07-12 13:35:36 -07:00
Kate Lovett
eb0b179028
Part 1: Skia Gold Testing (#33688)
* Fresh PR for Gold integration.

* Nits

* WIP

* Artifacts from merge

* Changed some platform dependencies for web, added library prefix notation for Skia Gold test names.

* Updating for CI implementation

* Write out service account

* Writing to skip out

* WIP

* ++

* Fixing depot tools deps

* Windows depot_tools

* Fixing setup scripts

* ++

* depot tools

* ++

* WIP

* Tracing depot_tools clone

* WIP

* ++

* analyzer

* WIP

* chrome typo

* copy artifact

* Working on tests

* Code cleanup

* ++

* Code cleanup, updated tests

* ++ review feedback

* Review

* Analyzer

* Review feedback

* Nits from review

* PRogress

* ++

* Fixing tests

* ++

* Testing repo route

* Just needing documention around new structures.

* cleanup

* Analyzer

* Documentation updates

* Documentation updates

* Cirrus updates

* cirrus nit

* Review feedback

* Review feedback

* Fixing skip comparator

* Fix base directory for Skia Gold case

* ++

* Feedback

* ++

* Fixed uri assertion

* Made GoldensClient abstract, altered SkiaGoldClient constructor

* Analyzer
2019-07-12 12:23:04 -07:00
Shi-Hao Hong
2ba85a22dd
Simple Doc Fixes (#35743)
* Fix "the a" typos

* Rephrase global key API doc description
2019-07-08 10:42:08 -07:00
Alexandre Ardhuin
758009ba70
more ui-as-code (#35393)
* more ui-as-code

* address review comments
2019-07-02 21:11:56 +02:00
Dan Field
3eb40925e5
Always test semantics (#35110)
Default `semanticsEnabled` to true for `testWidgets` and fix associated bugs
2019-06-28 12:40:23 -07:00
Tong Mu
94dbdcba73
benchmarkWidgets.semanticsEnabled default false. (#35280)
In order not to break existing benchmarks.
2019-06-28 11:03:16 -07:00
David Shuckerow
df6e4d4872
Make it possible to override the FLUTTER_TEST env variable (#34301)
* Make it possible to override the FLUTTER_TEST env variable without unsetting it.

* Switch to using platform instead of Platform.

* Document the bindings, and introduce tests that initialize multiple WidgetsBindings with different environments.

* Add tests for the flutter platform test.

* Add license headers

* Fix lints

* Remove trailing whitespace

* Respond to Jonahs comments

* Respond to Ians comments

* Mock out the HttpServer in flutter_platform_test

* Mock out the HttpServer in flutter_platform_test

* Explain why we mock out the HttpServer in flutter_platform_test
2019-06-28 10:37:27 -07:00
Tong Mu
03ed06f44d
New benchmark: Gesture semantics (#35232)
* Add semanticsEnabled to widgetBenchmark
* Add button_matrix_app and gesture benchmark
2019-06-28 00:37:01 -07:00
Todd Volkert
d2c2f4c66b
More HttpClientResponse Uint8List fixes (#35143)
Follow-on change to https://github.com/flutter/flutter/pull/34863 (see that change
for context), whereby we ensure that we're properly dealing in `Uint8List`.

These necessary changes would have been caught by disabling implicit casts
in our analysis options.

dart-lang/sdk#36900
https://github.com/flutter/flutter/issues/13815
2019-06-26 16:11:04 -07:00
Alexandre Ardhuin
c7408be181
prepare for lint update of prefer_final_fields (#35059) 2019-06-25 19:39:34 +02:00
Todd Volkert
e8270ff661
Prepare for HttpClientResponse Uint8List SDK change (#34863)
* Prepare for HttpClientResponse Uint8List SDK change

An upcoming change in the Dart SDK will change `HttpClientResponse`
from implementing `Stream<List<int>>` to instead implement
`Stream<Uint8List>`.

This forwards-compatible change to `_MockHttpClientResponse` is being
made to allow for a smooth rollout of that SDK breaking change. The
current structure of the class is as follows:

```dart
_MockHttpClientResponse extends Stream<List<int>> implements HttpClientResponse {
  ...
}
```

This structure would require that the Dart SDK change land atomically
a change to the class (`extends Stream<Uint8List>`). This atomic landing
requirement doesn't play well at all with Flutter's roll model vis-a-vis
the Dart SDK's roll model to Google's internal repo.  As such, this commit
changes the structure of `_MockHttpClientResponse` to be:

```dart
_MockHttpClientResponse implements HttpClientResponse {
  final Stream<Uint8List> _delegate;

  ...
}
```

Once the Dart SDK change has fully rolled out, we can simplify this class
back to its former structure.

https://github.com/dart-lang/sdk/issues/36900

* Review comment
2019-06-21 17:01:32 -07:00
chunhtai
c8c20fbc1f
add read only semantics flag (#34683) 2019-06-19 14:41:44 -07:00
LongCatIsLooong
2602119194
Cupertino text edit tooltip rework (#34095) 2019-06-18 18:29:10 -07:00
Kate Lovett
7d95e8e0c1
Splitting golden file versioning out as an argument of matchesGoldenFile (#33880)
* Splitting golden file versioning out as an argument of matchesGoldenFile

* Fixing description implementation.

* Removing unused imports

* Removing unused import

* Review feedback
2019-06-18 11:32:13 -07:00
Ian Hickson
f31fc1bd0f More removing of timeouts. (#33932) 2019-06-12 23:12:35 -07:00