| 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 | |
| 12 main() { | |
| 13 | |
| 14 useHtmlConfiguration(); | |
| 15 | |
| 16 setUp(() => new LogInjector().injectLogs( | |
| 17 '''{ | |
| 18 "polymer#0":[{ | |
| 19 "level":"Info", | |
| 20 "message":{"id":"polymer#0","snippet":"foo"}} | |
| 21 ], | |
| 22 "polymer#1":[{ | |
| 23 "level":"Info", | |
| 24 "message":{"id":"polymer#1","snippet":"foo"}, | |
| 25 "span":{ | |
| 26 "start":{ | |
| 27 "url":"web/test.html", | |
| 28 "offset":22, | |
| 29 "line":1, | |
| 30 "column":0 | |
| 31 }, | |
| 32 "end":{ | |
| 33 "url":"web/test.html", | |
| 34 "offset":50, | |
| 35 "line":1, | |
| 36 "column":28 | |
| 37 }, | |
| 38 "text":"<polymer-element name=\\"x-a\\">" | |
| 39 } | |
| 40 }], | |
| 41 "polymer#2":[ | |
| 42 {"level":"Warning","message":{"id":"polymer#2","snippet":"bar"}}, | |
| 43 {"level":"Warning","message":{"id":"polymer#2", | |
| 44 "snippet":"bar again"}}, | |
| 45 {"level":"Error","message":{"id":"polymer#2","snippet":"baz1"}} | |
| 46 ], | |
| 47 "foo#44":[{"level":"Error","message":{"id":"foo#44","snippet":"baz2"}}] | |
| 48 }''' | |
| 49 )); | |
| 50 | |
| 51 test('can inject a functioning log widget', () { | |
| 52 var logsElement = document.querySelector(".build-logs"); | |
| 53 expect(logsElement, isNotNull); | |
| 54 | |
| 55 var menuElements = logsElement.querySelectorAll(".menu > div"); | |
| 56 expect(menuElements.length, 3); | |
| 57 var contentElements = logsElement.querySelectorAll(".content > div"); | |
| 58 expect(contentElements.length, 3); | |
| 59 | |
| 60 var expectedClasses = ['info', 'warning', 'error']; | |
| 61 | |
| 62 // Check initial setup. | |
| 63 for (var i = 0; i < menuElements.length; ++i) { | |
| 64 expect(menuElements[i].classes.contains(expectedClasses[i]), true); | |
| 65 expect(menuElements[i].classes.contains('active'), false); | |
| 66 expect(contentElements[i].classes.contains(expectedClasses[i]), true); | |
| 67 expect(contentElements[i].classes.contains('active'), false); | |
| 68 expect(contentElements[i].querySelectorAll('.log').length, 2); | |
| 69 } | |
| 70 | |
| 71 // Test clicking each of the tabs. | |
| 72 for (var i = 0; i < menuElements.length; ++i) { | |
| 73 menuElements[i].click(); | |
| 74 for (var j = 0; j < menuElements.length; ++j) { | |
| 75 expect(menuElements[j].classes.contains('active'), j == i); | |
| 76 expect(contentElements[j].classes.contains('active'), j == i); | |
| 77 } | |
| 78 } | |
| 79 | |
| 80 // Test toggling same tab. | |
| 81 expect(menuElements[2].classes.contains('active'), true); | |
| 82 menuElements[2].click(); | |
| 83 expect(menuElements[2].classes.contains('active'), false); | |
| 84 expect(contentElements[2].classes.contains('active'), false); | |
| 85 }); | |
| 86 } | |
| OLD | NEW |