1. 03 May, 2016 16 commits
  2. 02 May, 2016 8 commits
  3. 01 May, 2016 3 commits
  4. 30 Apr, 2016 3 commits
  5. 29 Apr, 2016 10 commits
    • Adam Barth's avatar
      Fix the padding and space for FlatButton and RaisedButton (#3650) · b2fa6c25
      Adam Barth authored
      Instead of incorporating the margin into the button, introduce a ButtonBar
      widget that supplies the proper spacing between the buttons. Also, make these
      buttons more configurable via ButtonTheme so that dialogs can change the
      minWidth and padding of the buttons as required by the spec.
      
      Fixes #1843
      Fixes #3184
      b2fa6c25
    • Adam Barth's avatar
      Center the "slow mode" banner (#3651) · f8d76d18
      Adam Barth authored
      Also add dartdocs.
      f8d76d18
    • Viktor Lidholt's avatar
      Initial set of tests for flutter sprites (#3643) · ed40dd35
      Viktor Lidholt authored
      * Initial set of tests for flutter sprites
      ed40dd35
    • Jason Simmons's avatar
      Build ahead-of-time compiled snapshots and incorporate them into Android APKs (#3592) · 01a27ca4
      Jason Simmons authored
      This currently requires a local build of the engine.
      
      Run "flutter build aot" to build an AOT snapshot.
      Run "flutter build apk --profile" to build a "profile mode" APK that uses AOT.
      01a27ca4
    • 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