1. 29 Apr, 2016 13 commits
    • Devon Carew's avatar
      53c07045
    • Yegor's avatar
      7c017898
    • 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
    • Yegor's avatar
      fix first frame reporting logic (#3640) · e60a624a
      Yegor authored
      e60a624a
    • Adam Barth's avatar
      Add ergonomic wrappers for Flutter platform services (#3636) · 870c3619
      Adam Barth authored
      These wrappers also give us a chance to document what these services do.
      
      Fixes #3164
      870c3619
    • Adam Barth's avatar
      Update engine (#3637) · 5497ba18
      Adam Barth authored
      Turns out there were more clients of the old paragraph API than I expected.
      This patch migrates them to the new API.
      5497ba18
    • Matt Perry's avatar
      Clear the composing range when selecting text. (#3635) · f93ea0ea
      Matt Perry authored
      This fixes a bug where editing the selected text on Android would delete
      the wrong block of text.
      
      BUG=https://github.com/flutter/flutter/issues/3567
      f93ea0ea
    • Devon Carew's avatar
      fix an issue parsing adb output (#3629) · 60755f6d
      Devon Carew authored
      60755f6d
    • Devon Carew's avatar
      99114cd4
    • Ian Hickson's avatar
      Allow children to overflow above a Baseline widget (#3573) · 055c919f
      Ian Hickson authored
      Turns out a common use for Baseline is making sure that the child's
      baseline is higher than it otherwise would be, e.g. with the Material
      font or other symbols.
      055c919f
    • Ian Hickson's avatar
      Fix truncated dartdoc. (#3619) · 770e17cf
      Ian Hickson authored
      Note that the /// part of the doc was published, only the // line was
      omitted. This means that we can safely put // comments between /// docs
      and the member they are documenting.
      770e17cf
    • Adam Barth's avatar
      Improve the TextPainter API (#3621) · e41120bc
      Adam Barth authored
      Instead of using properties, TextPainter now receives min and max width as
      parameters to layout. Also, this patch integrates the intrinsic sizing logic
      into the main layout function, which satisfies all the existing uses cases.
      e41120bc
    • Adam Barth's avatar
      Update engine.version (#3623) · 53db3949
      Adam Barth authored
      53db3949
  2. 28 Apr, 2016 14 commits
  3. 27 Apr, 2016 11 commits
  4. 26 Apr, 2016 2 commits