This repository has been archived by the owner on Feb 22, 2018. It is now read-only.
/
dart_initializer_generator_test.dart
65 lines (51 loc) · 2.25 KB
/
dart_initializer_generator_test.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// 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 js.test.transformer.initializer_generator_test;
import 'package:analyzer/src/generated/element.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:barback/barback.dart';
import 'package:js/src/transformer/dart_initializer_generator.dart';
import 'package:js/src/transformer/scanning_visitor.dart';
import 'package:js/src/transformer/utils.dart';
import 'package:source_maps/refactor.dart';
import 'package:source_span/source_span.dart';
import 'package:unittest/unittest.dart';
import 'utils.dart';
main() {
group('DartInitializerGenerator', () {
InternalAnalysisContext _context;
String testLibSource;
LibraryElement testLib;
LibraryElement jsLib;
LibraryElement jsMetadataLib;
setUp(() {
var analyserInfo = initAnalyzer();
testLib = analyserInfo.testLib;
jsLib = analyserInfo.jsLib;
jsMetadataLib = getMetadataLib(jsLib);
testLibSource = analyserInfo.context.getContents(testLib.source).data;
});
// TODO: This test doesn't really do anything. We probably want to compare
// the output against checked-in known good transformed source and leave the
// rest of the testing to generated_code_test
test('should generate implementations for JsInterface subclasses', () {
var jsProxies = new Set.from([
testLib.getType('ContextImpl'),
testLib.getType('JsFooImpl'),
testLib.getType('JsBarImpl')]);
var visitor = new ScanningVisitor(jsLib, jsMetadataLib, testLib)
..visitLibraryElement(testLib);
var testSourceFile = new SourceFile(testLibSource);
var transaction = new TextEditTransaction(testLibSource, testSourceFile);
var id = new AssetId('test', 'lib/test.dart');
var generator = new DartInitializerGenerator(
'js.transformer_test',
'lib/test.dart',
visitor.jsElements);
var source = generator.generate();
expect(source, contains('initializeJavaScriptLibrary()'));
expect(source, contains('_export_test_library_ExportMe'));
});
});
}