/// auto-generated by update_angular.sh

// Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

library angular_vm_tests;

import 'package:unittest/compact_vm_config.dart';
import 'package:unittest/unittest.dart';
import '../../../third_party/pkg/angular/test/tools/html_extractor_spec.dart' as test_0;
import '../../../third_party/pkg/angular/test/tools/selector_spec.dart' as test_1;
import '../../../third_party/pkg/angular/test/tools/source_metadata_extractor_spec.dart' as test_2;

main() {
  useCompactVMConfiguration();

  group('tools/html_extractor', () {
    test_0.main();
  });

  group('tools/selector', () {
    test_1.main();
  });

  group('tools/source_metadata_extractor', () {
    test_2.main();
  });
}
