Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1286)

Unified Diff: test/codegen/lib/html/cssstyledeclaration_test.dart

Issue 1930043002: Add all dart:html tests from the sdk to test/codegen. (Closed) Base URL: git@github.com:dart-lang/dev_compiler.git@master
Patch Set: ptal Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: test/codegen/lib/html/cssstyledeclaration_test.dart
diff --git a/test/codegen/lib/html/cssstyledeclaration_test.dart b/test/codegen/lib/html/cssstyledeclaration_test.dart
new file mode 100644
index 0000000000000000000000000000000000000000..b146085a835939d848b3f2017af25b50bce50a1b
--- /dev/null
+++ b/test/codegen/lib/html/cssstyledeclaration_test.dart
@@ -0,0 +1,160 @@
+// Copyright (c) 2011, 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 CssStyleDeclarationTest;
+import 'package:unittest/unittest.dart';
+import 'package:unittest/html_config.dart';
+import 'dart:html';
+import 'dart:async';
+import 'utils.dart';
+
+main() {
+ useHtmlConfiguration();
+
+ createTestStyle() {
+ return new CssStyleDeclaration.css("""
+ color: blue;
+ width: 2px !important;
+ """);
+ };
+
+ test('default constructor is empty', () {
+ var style = new CssStyleDeclaration();
+ expect(style.cssText, isEmpty);
+ expect(style.getPropertyPriority('color'), isEmpty);
+ expect(style.item(0), isEmpty);
+ expect(style, hasLength(0));
+ // These assertions throw a UnimplementedError in dartium:
+ // expect(style.parentRule, isNull);
+ // expect(style.getPropertyCssValue('color'), isNull);
+ // expect(style.getPropertyShorthand('color'), isNull);
+ });
+
+ test('length is wrapped', () {
+ expect(createTestStyle(), hasLength(2));
+ });
+
+ test('getPropertyPriority is wrapped', () {
+ var style = createTestStyle();
+ expect(style.getPropertyPriority("color"), isEmpty);
+ expect(style.getPropertyPriority("width"), equals("important"));
+ });
+
+ test('removeProperty is wrapped', () {
+ var style = createTestStyle();
+ style.removeProperty("width");
+ expect(style.cssText.trim(),
+ equals("color: blue;"));
+ });
+
+ test('CSS property empty getters and setters', () {
+ var style = createTestStyle();
+ expect(style.border, equals(""));
+
+ style.border = "1px solid blue";
+ style.border = "";
+ expect(style.border, equals(""));
+
+ style.border = "1px solid blue";
+ style.border = null;
+ expect(style.border, equals(""));
+ });
+
+ test('CSS property getters and setters', () {
+ var style = createTestStyle();
+ expect(style.color, equals("blue"));
+ expect(style.width, equals("2px"));
+
+ style.color = "red";
+ style.transform = "translate(10px, 20px)";
+
+ expect(style.color, equals("red"));
+ expect(style.transform, equals("translate(10px, 20px)"));
+ });
+
+ test('Browser prefixes', () {
+ var element = new DivElement();
+ element.style.transform = 'translateX(10px)';
+ document.body.children.add(element);
+
+ var style = element.getComputedStyle();
+ // Some browsers will normalize this, so it'll be a matrix rather than
+ // the original string. Just check that it's something other than null.
+ expect(style.transform.length, greaterThan(3));
+ });
+
+ // IE9 requires an extra poke for some properties to get applied.
+ test('IE9 Invalidation', () {
+ var element = new DivElement();
+ document.body.children.add(element);
+
+ // Need to wait one tick after the element has been added to the page.
+ new Timer(const Duration(milliseconds: 10), expectAsync(() {
+ element.style.textDecoration = 'underline';
+ var style = element.getComputedStyle();
+ expect(style.textDecoration, contains('underline'));
+ }));
+ });
+
+ test('Invalid values', () {
+ var element = new DivElement();
+ // Should not throw an error.
+ element.style.background = 'some_bad_value';
+ });
+
+ test('css multi get', () {
+ var listElement = new Element.html('<ul class="foo">'
+ '<li class="bar" style="background-color: red; border-left: 10px;">'
+ '<li class="baz" style="background-color: black;>'
+ '<li class="baz classy" style="background-color: blue; ">'
+ '</ul>', treeSanitizer: new NullTreeSanitizer());
+ document.documentElement.children.add(listElement);
+
+ var elements = document.queryAll('li');
+ expect(elements.style.backgroundColor, equals('red'));
+ expect(elements.style.borderLeftWidth, equals('10px'));
+ elements = document.queryAll('.baz');
+ expect(elements.style.backgroundColor, equals('black'));
+ expect(elements.style.borderLeftWidth, equals(''));
+ elements = document.queryAll('.bar');
+ expect(elements.style.backgroundColor, equals('red'));
+ });
+
+ test('css multi set', () {
+ var listElement = new Element.html('<ul class="foo">'
+ '<li class="bar" style="background-color: red; border-left: 10px;">'
+ '<li class="baz" style="background-color: black;>'
+ '<li class="baz" id="wat" style="background-color: blue; ">'
+ '</ul>', treeSanitizer: new NullTreeSanitizer());
+ document.documentElement.children.add(listElement);
+
+ var elements = document.queryAll('li');
+ elements.style.backgroundColor = 'green';
+ expect(elements.style.backgroundColor, equals('green'));
+ expect(elements.style.borderLeftWidth, equals('10px'));
+
+ elements = document.queryAll('.baz');
+ expect(elements.style.backgroundColor, equals('green'));
+ elements.style.backgroundColor = 'yellow';
+ expect(elements.style.backgroundColor, equals('yellow'));
+ expect(elements.style.borderLeftWidth, equals(''));
+
+ elements = document.queryAll('.bar');
+ expect(elements.style.backgroundColor, equals('green'));
+ elements = document.queryAll('#wat');
+ expect(elements.style.backgroundColor, equals('yellow'));
+
+ elements.style.borderLeftWidth = '18px';
+ expect(elements.style.borderLeftWidth, equals('18px'));
+ elements = document.queryAll('li');
+ expect(elements.style.borderLeftWidth, equals('10px'));
+ });
+
+ test('supports property', () {
+ expect(document.body.style.supportsProperty('bogus-property'), false);
+ expect(document.body.style.supportsProperty('background'), true);
+ expect(document.body.style.supportsProperty('borderBottomWidth'), true);
+ expect(document.body.style.supportsProperty('animation'), true);
+ });
+}
« no previous file with comments | « test/codegen/lib/html/css_test.dart ('k') | test/codegen/lib/html/custom/attribute_changed_callback_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698