OLD | NEW |
| (Empty) |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | |
2 // for details. All rights reserved. Use of this source code is governed by a | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 | |
5 import 'dart:async'; | |
6 import 'dart:html'; | |
7 import 'package:unittest/unittest.dart'; | |
8 import 'package:unittest/html_config.dart'; | |
9 import 'package:polymer/src/build/log_injector.dart'; | |
10 | |
11 main() { | |
12 useHtmlConfiguration(); | |
13 | |
14 setUp(() => new LogInjector().injectLogs('''{ | |
15 "polymer#0":[{ | |
16 "level":"Info", | |
17 "message":{"id":"polymer#0","snippet":"foo"}} | |
18 ], | |
19 "polymer#1":[{ | |
20 "level":"Info", | |
21 "message":{"id":"polymer#1","snippet":"foo"}, | |
22 "span":{ | |
23 "start":{ | |
24 "url":"web/test.html", | |
25 "offset":22, | |
26 "line":1, | |
27 "column":0 | |
28 }, | |
29 "end":{ | |
30 "url":"web/test.html", | |
31 "offset":50, | |
32 "line":1, | |
33 "column":28 | |
34 }, | |
35 "text":"<polymer-element name=\\"x-a\\">" | |
36 } | |
37 }], | |
38 "polymer#2":[ | |
39 {"level":"Warning","message":{"id":"polymer#2","snippet":"bar"}}, | |
40 {"level":"Warning","message":{"id":"polymer#2", | |
41 "snippet":"bar again"}}, | |
42 {"level":"Error","message":{"id":"polymer#2","snippet":"baz1"}} | |
43 ], | |
44 "foo#44":[{"level":"Error","message":{"id":"foo#44","snippet":"baz2"}}] | |
45 }''')); | |
46 | |
47 test('can inject a functioning log widget', () { | |
48 var logsElement = document.querySelector(".build-logs"); | |
49 expect(logsElement, isNotNull); | |
50 | |
51 var menuElements = logsElement.querySelectorAll(".menu > div"); | |
52 expect(menuElements.length, 3); | |
53 var contentElements = logsElement.querySelectorAll(".content > div"); | |
54 expect(contentElements.length, 3); | |
55 | |
56 var expectedClasses = ['info', 'warning', 'error']; | |
57 | |
58 // Check initial setup. | |
59 for (var i = 0; i < menuElements.length; ++i) { | |
60 expect(menuElements[i].classes.contains(expectedClasses[i]), true); | |
61 expect(menuElements[i].classes.contains('active'), false); | |
62 expect(contentElements[i].classes.contains(expectedClasses[i]), true); | |
63 expect(contentElements[i].classes.contains('active'), false); | |
64 expect(contentElements[i].querySelectorAll('.log').length, 2); | |
65 } | |
66 | |
67 // Test clicking each of the tabs. | |
68 for (var i = 0; i < menuElements.length; ++i) { | |
69 menuElements[i].click(); | |
70 for (var j = 0; j < menuElements.length; ++j) { | |
71 expect(menuElements[j].classes.contains('active'), j == i); | |
72 expect(contentElements[j].classes.contains('active'), j == i); | |
73 } | |
74 } | |
75 | |
76 // Test toggling same tab. | |
77 expect(menuElements[2].classes.contains('active'), true); | |
78 menuElements[2].click(); | |
79 expect(menuElements[2].classes.contains('active'), false); | |
80 expect(contentElements[2].classes.contains('active'), false); | |
81 }); | |
82 } | |
OLD | NEW |