1. 16 May, 2016 1 commit
    • Ian Hickson's avatar
      Make it possible to run tests live on a device (#3936) · 32527017
      Ian Hickson authored
      This makes it possible to substitute 'flutter run' for 'flutter test'
      and actually watch a test run on a device.
      
      For any test that depends on flutter_test:
      
      1. Remove any import of 'package:test/test.dart'.
      
      2. Replace `testWidgets('...', (WidgetTester tester) {`
            with `testWidgets('...', (WidgetTester tester) async {`
      
      3. Add an "await" in front of calls to any of the following:
          * tap()
          * tapAt()
          * fling()
          * flingFrom()
          * scroll()
          * scrollAt()
          * pump()
          * pumpWidget()
      
      4. Replace any calls to `tester.flushMicrotasks()` with calls to
         `await tester.idle()`.
      
      There's a guarding API that you can use, if you have particularly
      complicated tests, to get better error messages. Search for
      TestAsyncUtils.
      32527017
  2. 12 May, 2016 1 commit
  3. 22 Apr, 2016 1 commit
  4. 21 Apr, 2016 1 commit
    • Ian Hickson's avatar
      Make the widgets binding reusable. (#3479) · 0e11b0e6
      Ian Hickson authored
      Previously the widgets layer only provided a concrete binding, which
      makes it awkward to extend it compared to other bindings. This moves
      widgets to the same style as the other layers.
      
      In a subsequent patch I'll use this to make the tests layer saner.
      0e11b0e6
  5. 20 Apr, 2016 1 commit
  6. 19 Apr, 2016 2 commits
    • Devon Carew's avatar
      add a service extension for repaint rainbow (#3409) · dd2bde19
      Devon Carew authored
      * add a service extension for repaint rainbow
      
      * review comments
      dd2bde19
    • 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
  7. 15 Apr, 2016 1 commit
  8. 24 Mar, 2016 1 commit
  9. 17 Mar, 2016 1 commit
  10. 14 Mar, 2016 1 commit
  11. 04 Mar, 2016 1 commit
  12. 14 Feb, 2016 1 commit
  13. 11 Feb, 2016 1 commit
    • Ian Hickson's avatar
      Clean up imports and exports. · a94999ba
      Ian Hickson authored
      Each layer is supposed to reexport the parts of the previous layer
      that are part of its API.
      
      - In painting.dart, export from dart:ui all the Canvas-related APIs
        that make sense to be used at higher levels, e.g. PaintingStyle.
      
      - Delete painting/shadows.dart. It was dead code.
      
      - In rendering/object.dart, export all of painting.dart.
      
      - In widgets/basic.dart, export all of painting.dart and
        animation.dart. Some classes in animation/ are renamed to make this
        less disruptive and confusing to the namespace.
      
      - Split out Stocks back into an import model rather than a part model,
        so that it's easier to manage its dependencies on a per-file basis.
      
      - Move Ticker to scheduler library.
      
      - Remove as many redundant imports as possible now.
      
      - Some minor nit picking cleanup in various files.
      a94999ba
  14. 02 Feb, 2016 1 commit
  15. 01 Feb, 2016 2 commits
  16. 31 Jan, 2016 1 commit
  17. 27 Jan, 2016 1 commit
  18. 18 Jan, 2016 1 commit
  19. 16 Jan, 2016 1 commit
  20. 17 Dec, 2015 1 commit
    • Hixie's avatar
      Less tree walking for compositing bits updates. · ab01c7bf
      Hixie authored
      Use the same technique for updating compositing bits as layout and
      painting. This avoids walking the entire rendering tree when all you
      need to update is a small subtree.
      ab01c7bf
  21. 15 Dec, 2015 2 commits
  22. 14 Dec, 2015 3 commits
  23. 10 Dec, 2015 1 commit
  24. 09 Dec, 2015 1 commit
    • Eric Seidel's avatar
      Add a test to stocks for changing the locale · 09894ec5
      Eric Seidel authored
      I had to add a setLocale method to WidgetTester and
      split the code in FlutterBinding which handled locale
      changes to allow me to dispatch a locale change w/o actually
      changing what the c++ code reports as the locale.
      
      Also added the test to Travis.
      
      @abarth @jason-simmons
      09894ec5
  25. 08 Dec, 2015 2 commits
    • Hixie's avatar
      Clean up pointer handling. · 7514ce12
      Hixie authored
      Previously we tried to work around some possible badness from the engine
      side, but now we are more assertive about the engine needing to do the
      right thing.
      7514ce12
    • Jason Simmons's avatar
      Add a LocaleQuery widget that can be used to fetch locale-specific data · 9693cd55
      Jason Simmons authored
      Users of MaterialApp can provide an onLocaleChanged handler that will be
      called to asynchronously fetch locale-specific data.  MaterialApp will
      then instantiate a LocaleQuery that supplies the locale data to its
      descendants.
      9693cd55
  26. 07 Dec, 2015 2 commits
  27. 05 Dec, 2015 1 commit
    • Ian Hickson's avatar
      PointerInput refactor · f1625556
      Ian Hickson authored
      Instead of PointerInputEvent having a "type" field, we now have a
      different class for each pointer type.
      
      This has ripple effects throughout the system.
      
      I also did code cleanup in affected files while I was there.
      f1625556
  28. 02 Dec, 2015 1 commit
  29. 01 Dec, 2015 1 commit
    • Ian Hickson's avatar
      Remove the assert when opening popup menus. · fbd612e6
      Ian Hickson authored
      Some paint bounds are in fact empty, e.g. at the start of a growing
      animation if there's also a fade, the initial 0x0 box will also be
      opacity:0, and might get a dedicated layer and PaintingContext.
      fbd612e6
  30. 25 Nov, 2015 1 commit
  31. 19 Nov, 2015 1 commit
  32. 17 Nov, 2015 1 commit
  33. 13 Nov, 2015 1 commit