basic_project.dart 3.39 KB
Newer Older
Ian Hickson's avatar
Ian Hickson committed
1
// Copyright 2014 The Flutter Authors. All rights reserved.
2 3 4
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

5
import 'project.dart';
6

7
class BasicProject extends Project {
8 9 10 11

  @override
  final String pubspec = '''
  name: test
12
  environment:
13
    sdk: ">=2.12.0-0 <3.0.0"
14

15 16 17 18 19 20 21
  dependencies:
    flutter:
      sdk: flutter
  ''';

  @override
  final String main = r'''
22 23
  import 'dart:async';

24
  import 'package:flutter/material.dart';
25

26 27 28 29 30 31
  Future<void> main() async {
    while (true) {
      runApp(new MyApp());
      await Future.delayed(const Duration(milliseconds: 50));
    }
  }
32

33 34 35 36
  class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      topLevelFunction();
37
      return new MaterialApp( // BUILD BREAKPOINT
38 39 40 41 42 43 44
        title: 'Flutter Demo',
        home: new Container(),
      );
    }
  }

  topLevelFunction() {
45
    print("topLevelFunction"); // TOP LEVEL BREAKPOINT
46 47 48
  }
  ''';

49 50
  Uri get buildMethodBreakpointUri => mainDart;
  int get buildMethodBreakpointLine => lineContaining(main, '// BUILD BREAKPOINT');
51

52
  Uri get topLevelFunctionBreakpointUri => mainDart;
53
  int get topLevelFunctionBreakpointLine => lineContaining(main, '// TOP LEVEL BREAKPOINT');
54
}
55

56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
class BasicProjectWithTimelineTraces extends Project {
  @override
  final String pubspec = '''
  name: test
  environment:
    sdk: ">=2.12.0-0 <3.0.0"

  dependencies:
    flutter:
      sdk: flutter
  ''';

  @override
  final String main = r'''
  import 'dart:async';
  import 'dart:developer';

  import 'package:flutter/material.dart';

  Future<void> main() async {
    while (true) {
      runApp(new MyApp());
      await Future.delayed(const Duration(milliseconds: 50));
      Timeline.instantSync('main');
    }
  }

  class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      topLevelFunction();
      return new MaterialApp( // BUILD BREAKPOINT
        title: 'Flutter Demo',
        home: new Container(),
      );
    }
  }

  topLevelFunction() {
    print("topLevelFunction"); // TOP LEVEL BREAKPOINT
  }
  ''';
}

100 101 102 103 104
class BasicProjectWithFlutterGen extends Project {
  @override
  final String generatedFile = '''
    String x = "a";
  ''';
105 106 107 108 109

  @override
  final String pubspec = '''
  name: test
  environment:
110
    sdk: ">=2.12.0-0 <3.0.0"
111 112 113 114

  dependencies:
    flutter:
      sdk: flutter
115 116 117

  flutter:
    generate: true
118 119 120 121
  ''';

  @override
  final String main = r'''
122
  // @dart = 2.8
123
  // generated package does not support null safety.
124
  import 'dart:async';
125
  import 'package:flutter_gen/flutter_gen.dart';
126

127 128 129
  void main() {}
  ''';
}
130

131 132 133 134 135 136
class BasicProjectWithUnaryMain extends Project {

  @override
  final String pubspec = '''
  name: test
  environment:
137
    sdk: ">=2.12.0-0 <3.0.0"
138 139 140 141 142 143 144 145 146
  dependencies:
    flutter:
      sdk: flutter
  ''';

  @override
  final String main = r'''
  import 'dart:async';
  import 'package:flutter/material.dart';
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
  Future<void> main(List<String> args) async {
    while (true) {
      runApp(new MyApp());
      await Future.delayed(const Duration(milliseconds: 50));
    }
  }
  class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      topLevelFunction();
      return new MaterialApp( // BUILD BREAKPOINT
        title: 'Flutter Demo',
        home: new Container(),
      );
    }
  }
  topLevelFunction() {
    print("topLevelFunction"); // TOP LEVEL BREAKPOINT
  }
  ''';
}