1. 08 Nov, 2016 1 commit
  2. 25 Oct, 2016 2 commits
  3. 24 Oct, 2016 1 commit
  4. 18 Oct, 2016 1 commit
    • Yegor's avatar
      add description to by-predicate finders (#6362) · 995fcdc9
      Yegor authored
      Add an option to provide a custom description to predicate
      finders. Without a custom description we default to printing the
      predicate function's signature, which is not all that useful.
      
      Use this new option in the driver extension to print the text of the
      sought after tooltip.
      995fcdc9
  5. 03 Oct, 2016 1 commit
  6. 20 Sep, 2016 1 commit
  7. 13 Sep, 2016 1 commit
  8. 09 Sep, 2016 1 commit
  9. 08 Sep, 2016 1 commit
    • Phil Quitslund's avatar
      Update to Dart `1.20.0-dev.1.0`. (#5689) · d2fda677
      Phil Quitslund authored
      * Udpate to Dart `1.20.0-dev.1.0`.
      
      Udpate to Dart `1.20.0-dev.1.0` and corresponding `analyzer` package.
      
      * Added `--no-packages-dir`.
      
      * Revert extension to master.
      
      * Added ignores.
      
      * Review nits.
      
      * More nits.
      d2fda677
  10. 14 Jul, 2016 1 commit
    • YoungSeok Yoon's avatar
      Flutter driver commands for controlling the Input widget (#4913) · a10cd03b
      YoungSeok Yoon authored
      * Driver commands for controlling the Input widget
      
      This commit introduces two new driver commands for controlling the
      material Input widget.
      
      * setInputText(SerializableFinder finder, String text)
      * submitInputText(SerializableFinder finder)
      
      Since it is not possible to directly modify the Input widget text,
      these driver commands invokes the handler functions of the Input
      widget: onChanged and onSubmitted, respectively. The `submitInputText`
      command returns the submitted String as a result.
      
      * Make input command handler methods private
      
      Addressing comments from @yjbanov.
      a10cd03b
  11. 25 Jun, 2016 1 commit
    • Kaiyuan Wang's avatar
      Fix the issue that flutter driver does not close _peer (#4755) · ccf87bd0
      Kaiyuan Wang authored
      * Fix the issue that flutter driver does not close _peer when
      driver.close() is invoked.  The problem introduces the following
      unexpected behavior:
      
        1. Launch an app using "flutter run ..." command
        2. Run the flutter driver test using "dart flutter_test.dart"
      
      The test will not exit after running.  The problem will be solved
      if _peer is closed.
      
      * Fix formatting issue
      ccf87bd0
  12. 28 May, 2016 1 commit
  13. 10 May, 2016 1 commit
  14. 04 May, 2016 2 commits
    • pq's avatar
      Literals get type annotations. · bcede8df
      pq authored
      As per the recent fix to the `always_specify_types` lint (https://github.com/dart-lang/linter/issues/199), literal maps and lists are now expected to be explicitly typed.
      
      Running that lint on the repo identifies quite a few spots to update.  This focuses on `flutter_driver` and `flutter_sprites` (somewhat arbitrarily) but the changes are fairly representative.
      
      Note there are a number of places where I made a quick judgement on how specific to make the types.  Feedback on those is welcome.  (Especially as we move forward with more.)
      bcede8df
    • Hans Muller's avatar
      Gallery demo start-time performance test (#3655) · a9b965cb
      Hans Muller authored
      *  Gallery demo start-time performance test
      a9b965cb
  15. 03 May, 2016 2 commits
  16. 29 Apr, 2016 1 commit
    • Ian Hickson's avatar
      Refactor the test framework (#3622) · 91dd9699
      Ian Hickson authored
      * Refactor widget test framework
      
      Instead of:
      
      ```dart
        test("Card Collection smoke test", () {
          testWidgets((WidgetTester tester) {
      ```
      
      ...you now say:
      
      ```dart
        testWidgets("Card Collection smoke test", (WidgetTester tester) {
      ```
      
      Instead of:
      
      ```dart
        expect(tester, hasWidget(find.text('hello')));
      ```
      
      ...you now say:
      
      ```dart
        expect(find.text('hello'), findsOneWidget);
      ```
      
      Instead of the previous API (exists, widgets, widget, stateOf,
      elementOf, etc), you now have the following comprehensive API. All these
      are functions that take a Finder, except the all* properties.
      
      * `any()` - true if anything matches, c.f. `Iterable.any`
      * `allWidgets` - all the widgets in the tree
      * `widget()` - the one and only widget that matches the finder
      * `firstWidget()` - the first widget that matches the finder
      * `allElements` - all the elements in the tree
      * `element()` - the one and only element that matches the finder
      * `firstElement()` - the first element that matches the finder
      * `allStates` - all the `State`s in the tree
      * `state()` - the one and only state that matches the finder
      * `firstState()` - the first state that matches the finder
      * `allRenderObjects` - all the render objects in the tree
      * `renderObject()` - the one and only render object that matches the finder
      * `firstRenderObject()` - the first render object that matches the finder
      
      There's also `layers' which returns the list of current layers.
      
      `tap`, `fling`, getCenter, getSize, etc, take Finders, like the APIs
      above, and expect there to only be one matching widget.
      
      The finders are:
      
       * `find.text(String text)`
       * `find.widgetWithText(Type widgetType, String text)`
       * `find.byKey(Key key)`
       * `find.byType(Type type)`
       * `find.byElementType(Type type)`
       * `find.byConfig(Widget config)`
       * `find.byWidgetPredicate(WidgetPredicate predicate)`
       * `find.byElementPredicate(ElementPredicate predicate)`
      
      The matchers (for `expect`) are:
      
       * `findsNothing`
       * `findsWidgets`
       * `findsOneWidget`
       * `findsNWidgets(n)`
       * `isOnStage`
       * `isOffStage`
       * `isInCard`
       * `isNotInCard`
      
      Benchmarks now use benchmarkWidgets instead of testWidgets.
      
      Also, for those of you using mockers, `serviceMocker` now automatically
      handles the binding initialization.
      
      This patch also:
      
      * changes how tests are run so that we can more easily swap the logic
        out for a "real" mode instead of FakeAsync.
      
      * introduces CachingIterable.
      
      * changes how flutter_driver interacts with the widget tree to use the
        aforementioned new API rather than ElementTreeTester, which is gone.
      
      * removes ElementTreeTester.
      
      * changes the semantics of a test for scrollables because we couldn't
        convince ourselves that the old semantics made sense; it only worked
        before because flushing the microtasks after every event was broken.
      
      * fixes the flushing of microtasks after every event.
      
      * Reindent the tests
      
      * Fix review comments
      91dd9699
  17. 22 Apr, 2016 1 commit
  18. 21 Apr, 2016 2 commits
  19. 20 Apr, 2016 1 commit
  20. 19 Apr, 2016 2 commits
    • Ian Hickson's avatar
      Refactor service extensions (#3397) · 261923e5
      Ian Hickson authored
      Bindings now have a debugRegisterServiceExtensions() method that is
      invoked in debug mode (only). (Once we have a profile mode, there'll be
      a registerProfileServiceExtensions() method that gets called in that
      mode only to register extensions that apply then.)
      
      The BindingBase class provides convenience methods for registering
      service extensions that do the equivalent of:
      
      ```dart
      void extension() { ... }
      bool extension([bool enabled]) { ... }
      double extension([double extension])  { ... }
      Map<String, String> extension([Map<String, String> parameters]) { ... }
      ```
      
      The BindingBase class also itself registers ext.flutter.reassemble,
      which it has call a function on the binding called
      reassembleApplication().
      
      The Scheduler binding now exposes the preexisting
      ext.flutter.timeDilation.
      
      The Renderer binding now exposes the preexisting ext.flutter.debugPaint.
      
      The Renderer binding hooks reassembleApplication to trigger the
      rendering tree to be reprocessed (in particular, to fix up the
      optimisation closures).
      
      All the logic from rendering/debug.dart about service extensions is
      replaced by the above.
      
      I moved basic_types to foundation.
      
      The FlutterWidgets binding hooks reassembleApplication to trigger the
      widget tree to be entirely rebuilt.
      
      Flutter Driver now uses ext.flutter.driver instead of
      ext.flutter_driver, and is hooked using the same binding mechanism.
      Eventually we'll probably move the logic into the Flutter library so
      that you just get it without having to invoke a special method first.
      261923e5
    • Yegor's avatar
      [driver] "waitFor" command in place of broken "exists" (#3373) · e7657b94
      Yegor authored
      * [driver] "waitFor" command in place of broken "exits"
      
      * [driver] wait using frame callback
      e7657b94
  21. 15 Apr, 2016 2 commits
  22. 14 Apr, 2016 1 commit
  23. 13 Apr, 2016 1 commit
  24. 11 Apr, 2016 2 commits
  25. 08 Apr, 2016 1 commit
  26. 07 Apr, 2016 1 commit
  27. 05 Apr, 2016 1 commit
  28. 02 Apr, 2016 1 commit
  29. 31 Mar, 2016 1 commit
  30. 30 Mar, 2016 1 commit
  31. 29 Mar, 2016 1 commit
    • Yegor Jbanov's avatar
      [driver] fix observatory port # and timeline data extraction · bfa16b2b
      Yegor Jbanov authored
      The way we pick observatory port # has changed and we have broken
      logic that handles port 8181. To fix the buildbot, switch to port
      8182. We can later figure out what we want to do when we clean up
      port handling.
      
      The old VM extention for extracting the timeline data is gone.
      Switch to the new '_getVMTimeline' API.
      bfa16b2b
  32. 18 Mar, 2016 1 commit
  33. 14 Mar, 2016 1 commit