// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:flutter_tools/src/base/file_system.dart';

import '../test_utils.dart';
import 'test_project.dart';

class HotReloadProject extends TestProject {
  @override
  final String pubspec = '''
  name: test
  environment:
    sdk: ">=2.0.0-dev.68.0 <3.0.0"

  dependencies:
    flutter:
      sdk: flutter
  ''';

  @override
  final String main = r'''
  import 'package:flutter/material.dart';

  void main() => runApp(new MyApp());

  class MyApp extends StatelessWidget {
    @override
    Widget build(BuildContext context) {
      // Do not remove this line, it's uncommented by a test to verify that hot
      // reloading worked.
      // printHotReloadWorked();

      return new MaterialApp( // BREAKPOINT
        title: 'Flutter Demo',
        home: new Container(),
      );
    }
  }

  printHotReloadWorked() {
    // The call to this function is uncommented by a test to verify that hot
    // reloading worked.
    print('(((((RELOAD WORKED)))))');
  }
  ''';

  void uncommentHotReloadPrint() {
    final String newMainContents = main.replaceAll(
        '// printHotReloadWorked();', 'printHotReloadWorked();');
    writeFile(fs.path.join(dir.path, 'lib', 'main.dart'), newMainContents);
  }
}