Commit Graph

189 Commits

Author SHA1 Message Date
Ming Lyu (CareF)
a5fa083906
Add comment explain dispatchEvent override (#60734) 2020-07-08 18:37:33 -04:00
Ming Lyu (CareF)
78bb587c70
respect line wrapping style guide (#61118) 2020-07-08 16:44:59 -04:00
Ming Lyu (CareF)
61477b5949
Fix PointerAddedEvent handling in LiveTestWidgetsFlutterBinding (#61102)
* Fix PointerAddedEvent handling in tester
2020-07-08 13:28:51 -04:00
Dan Field
fb57edcc80
Revert "Revert "Fix remaining holes in stack trace demangling (#60478)" (#60916)" (#60996)
This reverts commit 2c7e5dd935.
2020-07-07 15:30:32 -07:00
Mehmet Fidanboylu
8c67781f36
Comments around hanging tests via runAsync. (#60136) 2020-07-07 09:14:02 -07:00
Dan Field
2c7e5dd935
Revert "Fix remaining holes in stack trace demangling (#60478)" (#60916)
This reverts commit d986fdc31a.
2020-07-06 10:07:36 -07:00
Andre
d986fdc31a
Fix remaining holes in stack trace demangling (#60478)
* Implement stack trace demangling in the framework.
2020-07-06 08:11:03 -07:00
Pierre-Louis
0bc4368233
Typo sweep (#60693) 2020-07-02 13:08:02 -07:00
Dan Field
868c4d8ce0
Fix issue with stack traces getting mangled (#59900) 2020-06-23 15:29:57 -07:00
Dan Field
68b131f313
[e2e] make test bindings friendlier to integration tests (#58210) 2020-05-29 11:50:12 -07:00
Dan Field
02b1080101
Functionality to check handlers set on platform channels (#57696) 2020-05-21 14:52:05 -07:00
cg021
1cfd792a38
remove pending timers list code out of assert message (#57287)
* move pending timers list code out of assert

* style change

Co-authored-by: Emmanuel Garcia <egarciad@google.com>

* add unit tests

* formatting

* pending timer test

* pending timer assertion test

* add setup and teardown

Co-authored-by: Emmanuel Garcia <egarciad@google.com>
2020-05-18 18:18:16 -05:00
chunhtai
d482163f59
Revert "Fix FlutterError.onError in debug mode (#53843)" (#55484)
This reverts commit d35671c6d1.
2020-04-23 11:57:18 -07:00
chunhtai
d35671c6d1
Fix FlutterError.onError in debug mode (#53843)
* Fix FlutterError.onError in debug mode

* update

* fix comments

* add license header

* fix analyzer

* update

* another attempt

* fix test

* fix comment
2020-04-22 17:17:42 -07:00
Jacob MacDonald
6399be62d2
remove flutter_test quiver dep, use fake_async and clock instead (#54125)
## Description

Removes the `flutter_test` dependency on `quiver`, instead using the more targeted `clock` and `fake_async` packages.

## Related Issues

https://github.com/flutter/flutter/issues/53908

## Tests

No changes to tests

## Checklist

Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes (`[x]`). This will ensure a smooth and quick review process.

- [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
- [x] I signed the [CLA].
- [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement].
- [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] All existing and new tests are passing.
- [x] The analyzer (`flutter analyze --flutter-repo`) does not report any problems on my PR.
- [x] I am willing to follow-up on review comments in a timely manner.

## Breaking Change

Did any tests fail when you ran them? Please read [Handling breaking changes].

- [ ] No, no existing tests failed, so this is *not* a breaking change.
- [x] Yes, this is a breaking change. *If not, delete the remainder of this section.*
   - [x] I wrote a design doc: https://docs.google.com/document/d/1EkkLbECNBwHgddBQAZqEy7iQLTIxR1rgChKzxcLwhio/edit
   - [x] I got input from the developer relations team, specifically from: @RedBrogdon
   - [x] I wrote a migration guide:  https://github.com/flutter/website/pull/3932

<!-- Links -->
[issue database]: https://github.com/flutter/flutter/issues
[Contributor Guide]: https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Test Coverage]: https://github.com/flutter/flutter/wiki/Test-coverage-for-package%3Aflutter
[Flutter Style Guide]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[Features we expect every widget to implement]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[Handling breaking changes]: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
2020-04-15 12:10:26 -07:00
Michael Goderbauer
d47ad7ec0d
Reverse dependency between services and scheduler (#54212) 2020-04-08 09:12:03 -07:00
Yegor
5ea13b8493
fix KeySet.hashCode; enable multiple web tests (#52861)
fix KeySet.hashCode; enable multiple web tests
2020-03-20 08:49:19 -07:00
Dan Field
b2a27c109c
Be clearer about when and why we override HttpClient in tests (#49844) 2020-01-31 09:22:30 -08:00
Alexandre Ardhuin
4f9b6cf017
enable lint prefer_final_in_for_each (#47724) 2020-01-07 16:32:04 +01:00
Michael Goderbauer
1ac17c14fc Re-land "Add option to delay rendering the first frame (#45135)" (#45941) 2019-12-03 19:48:01 -08:00
Kate Lovett
cd052a56cb
Revert "Re-land "Add option to delay rendering the first frame (#45135)" (#45588)" (#45939)
This reverts commit c59151b1cd.
2019-12-02 15:08:35 -08:00
Michael Goderbauer
c59151b1cd Re-land "Add option to delay rendering the first frame (#45135)" (#45588) 2019-12-02 13:33:45 -08:00
Ian Hickson
449f4a6673
License update (#45373)
* Update project.pbxproj files to say Flutter rather than Chromium

Also, the templates now have an empty organization so that we don't cause people to give their apps a Flutter copyright.

* Update the copyright notice checker to require a standard notice on all files

* Update copyrights on Dart files. (This was a mechanical commit.)

* Fix weird license headers on Dart files that deviate from our conventions; relicense Shrine.

Some were already marked "The Flutter Authors", not clear why. Their
dates have been normalized. Some were missing the blank line after the
license. Some were randomly different in trivial ways for no apparent
reason (e.g. missing the trailing period).

* Clean up the copyrights in non-Dart files. (Manual edits.)

Also, make sure templates don't have copyrights.

* Fix some more ORGANIZATIONNAMEs
2019-11-27 15:04:02 -08:00
chunhtai
314eb3bae3
Moving pointer event sanitizing to engine. (#44217) 2019-11-20 13:04:29 -08:00
Alexandre Ardhuin
4bf03c6cf8
implicit-casts:false in flutter_test (#44996) 2019-11-19 08:10:24 +01:00
Jonah Williams
e77c24ef91
Update package test (#44882) 2019-11-14 09:31:36 -08:00
Greg Spencer
0509791663
Fix mouse hover to not schedule a frame for every mouse move. (#41014)
This fixes the mouse hover code to not schedule frames with every mouse move.

Before this, it would schedule a post frame callback, and then schedule a frame immediately, even if there was nothing that needed to be updated. Now it will schedule checks for mouse position updates synchronously, unless there's a new annotation, and skip scheduling a new frame in all cases. It has to be async in the case of a new annotation (i.e. a new MouseRegion is added), since when the annotation is added, it hasn't yet painted, and it can't hit test against the new layer until after the paint, so in that case it schedules a post frame callback, but since it's already building a frame when it does that, it doesn't need to schedule a frame.

The code also used to do mouse position checks for all mice if only one mouse changed position. I fixed this part too, so that it will only check position for the mouse that changed.
2019-09-26 13:13:42 -07:00
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
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
adazh
5667b78291
Added a Driver wait condition for no pending platform messages (#39196) 2019-08-27 14:26:31 -07: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
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
adazh
92ef2b9ce1
Moved the default BinaryMessenger instance to ServicesBinding (#37489) 2019-08-09 10:13:40 -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
chunhtai
1166015931
Enable widget load assets in its own package in test (#35991) 2019-07-16 09:47:42 -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
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
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
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
Ian Hickson
f31fc1bd0f More removing of timeouts. (#33932) 2019-06-12 23:12:35 -07:00
Todd Volkert
8163c0aebb
Re-apply compressionState changes. (#34341)
This re-applies the changes that were made in #33697 and #33729,
but which were reverted in #33792 and #33790, respectively due to
the Dart SDK not having received the update within Google yet.
The SDK has now rolled, so these changes can be re-applied.

https://github.com/flutter/flutter/issues/32374
https://github.com/flutter/flutter/issues/33791
2019-06-12 13:47:47 -07:00
Jonah Williams
42a14b5891
Compatibility pass on flutter/foundation tests for JavaScript compilation. (1) (#33349) 2019-06-06 21:22:00 -07:00
Todd Volkert
52fc807dd2
Remove references to HttpClientResponseCompressionState (#33792)
https://github.com/flutter/flutter/issues/33791
2019-06-03 14:53:43 -07:00
Chris Bracken
2467c528f5
Roll engine 69ebe5fb28fc..a4b7d1c2895d (3 commits) (#33697)
69ebe5fb28..68a3ca46b4

git log 69ebe5fb28fca271b23010d43d4dc7f6e5286c4f..a4b7d1c2895d82228705a021cdb7fdb2f71ac2a5 --no-merges --oneline
4c6253cdd Copy the macOS podspec during builds (#9158)
68a3ca46b Roll src/third_party/dart 445a23a9bc..0e6b74543c (29 commits) (#9159)
1d1cff1fa Roll src/third_party/skia 3cd435eecf5e..09f5aedf2cc8 (3 commits) (#9160)

The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff (cbracken@google.com), and stop
the roller if necessary.
2019-05-31 21:17:43 -07:00