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

Unified Diff: pkg/csslib/test/declaration_test.dart

Issue 814113004: Pull args, intl, logging, shelf, and source_maps out of the SDK. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Also csslib. Created 6 years 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
« no previous file with comments | « pkg/csslib/test/debug_test.dart ('k') | pkg/csslib/test/error_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/csslib/test/declaration_test.dart
diff --git a/pkg/csslib/test/declaration_test.dart b/pkg/csslib/test/declaration_test.dart
deleted file mode 100644
index 857df4873298cbbacec41b0b4f2ebc39c041a974..0000000000000000000000000000000000000000
--- a/pkg/csslib/test/declaration_test.dart
+++ /dev/null
@@ -1,1034 +0,0 @@
-// Copyright (c) 2012, 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 declaration_test;
-
-import 'package:unittest/unittest.dart';
-import 'testing.dart';
-
-
-/** CSS compiler options no checks in in memory style sheet. */
-List options = ['--no-colors', 'memory'];
-
-void testSimpleTerms() {
- var errors = [];
- final String input = r'''
-@ import url("test.css");
-.foo {
- background-color: #191919;
- width: 10PX;
- height: 22mM !important;
- border-width: 20cm;
- margin-width: 33%;
- border-height: 30EM;
- width: .6in;
- length: 1.2in;
- -web-stuff: -10Px;
-}''';
- final String generated = r'''
-@import "test.css";
-.foo {
- background-color: #191919;
- width: 10px;
- height: 22mm !important;
- border-width: 20cm;
- margin-width: 33%;
- border-height: 30em;
- width: .6in;
- length: 1.2in;
- -web-stuff: -10px;
-}''';
-
- var stylesheet = parseCss(input, errors: errors);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-
- final String input2 = r'''
-* {
- border-color: green;
-}''';
- final String generated2 = r'''
-* {
- border-color: #008000;
-}''';
-
- stylesheet = parseCss(input2, errors: errors..clear());
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated2);
-}
-
-/**
- * Declarations with comments, references with single-quotes, double-quotes,
- * no quotes. Hex values with # and letters, and functions (rgba, url, etc.)
- */
-void testDeclarations() {
- var errors = [];
- final String input = r'''
-.more {
- color: white;
- color: black;
- color: cyan;
- color: red;
- color: #aabbcc; /* test -- 3 */
- color: blue;
- background-image: url(http://test.jpeg);
- background-image: url("http://double_quote.html");
- background-image: url('http://single_quote.html');
- color: rgba(10,20,255); <!-- test CDO/CDC -->
- color: #123aef; /* hex # part integer and part identifier */
-}''';
- final String generated = r'''
-.more {
- color: #fff;
- color: #000;
- color: #0ff;
- color: #f00;
- color: #abc;
- color: #00f;
- background-image: url("http://test.jpeg");
- background-image: url("http://double_quote.html");
- background-image: url("http://single_quote.html");
- color: rgba(10, 20, 255);
- color: #123aef;
-}''';
-
- var stylesheet = parseCss(input, errors: errors);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-}
-
-void testIdentifiers() {
- var errors = [];
- final String input = r'''
-#da {
- height: 100px;
-}
-#foo {
- width: 10px;
- color: #ff00cc;
-}
-''';
- final String generated = r'''
-#da {
- height: 100px;
-}
-#foo {
- width: 10px;
- color: #f0c;
-}''';
-
- var stylesheet = parseCss(input, errors: errors);
-
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(stylesheet != null, true);
- expect(prettyPrint(stylesheet), generated);
-}
-
-void testComposites() {
- var errors = [];
- final String input = r'''
-.xyzzy {
- border: 10px 80px 90px 100px;
- width: 99%;
-}
-@-webkit-keyframes pulsate {
- 0% {
- -webkit-transform: translate3d(0, 0, 0) scale(1.0);
- }
-}''';
- final String generated = r'''
-.xyzzy {
- border: 10px 80px 90px 100px;
- width: 99%;
-}
-@-webkit-keyframes pulsate {
- 0% {
- -webkit-transform: translate3d(0, 0, 0) scale(1.0);
- }
-}''';
-
- var stylesheet = parseCss(input, errors: errors);
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-}
-
-void testUnits() {
- var errors = [];
- final String input = r'''
-#id-1 {
- transition: color 0.4s;
- animation-duration: 500ms;
- top: 1em;
- left: 200ex;
- right: 300px;
- bottom: 400cm;
- border-width: 2.5mm;
- margin-top: .5in;
- margin-left: 5pc;
- margin-right: 5ex;
- margin-bottom: 5ch;
- font-size: 10pt;
- padding-top: 22rem;
- padding-left: 33vw;
- padding-right: 34vh;
- padding-bottom: 3vmin;
- transform: rotate(20deg);
- voice-pitch: 10hz;
-}
-#id-2 {
- left: 2fr;
- font-size: 10vmax;
- transform: rotatex(20rad);
- voice-pitch: 10khz;
- -web-kit-resolution: 2dpi; /* Bogus property name testing dpi unit. */
-}
-#id-3 {
- -web-kit-resolution: 3dpcm; /* Bogus property name testing dpi unit. */
- transform: rotatey(20grad);
-}
-#id-4 {
- -web-kit-resolution: 4dppx; /* Bogus property name testing dpi unit. */
- transform: rotatez(20turn);
-}
-''';
-
- final String generated = r'''
-#id-1 {
- transition: color 0.4s;
- animation-duration: 500ms;
- top: 1em;
- left: 200ex;
- right: 300px;
- bottom: 400cm;
- border-width: 2.5mm;
- margin-top: .5in;
- margin-left: 5pc;
- margin-right: 5ex;
- margin-bottom: 5ch;
- font-size: 10pt;
- padding-top: 22rem;
- padding-left: 33vw;
- padding-right: 34vh;
- padding-bottom: 3vmin;
- transform: rotate(20deg);
- voice-pitch: 10hz;
-}
-#id-2 {
- left: 2fr;
- font-size: 10vmax;
- transform: rotatex(20rad);
- voice-pitch: 10khz;
- -web-kit-resolution: 2dpi;
-}
-#id-3 {
- -web-kit-resolution: 3dpcm;
- transform: rotatey(20grad);
-}
-#id-4 {
- -web-kit-resolution: 4dppx;
- transform: rotatez(20turn);
-}''';
-
- var stylesheet = parseCss(input, errors: errors, opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-}
-
-void testUnicode() {
- var errors = [];
- final String input = r'''
-.toggle:after {
- content: '✔';
- line-height: 43px;
- font-size: 20px;
- color: #d9d9d9;
- text-shadow: 0 -1px 0 #bfbfbf;
-}
-''';
-
- final String generated = r'''
-.toggle:after {
- content: '✔';
- line-height: 43px;
- font-size: 20px;
- color: #d9d9d9;
- text-shadow: 0 -1px 0 #bfbfbf;
-}''';
-
- var stylesheet = parseCss(input, errors: errors);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-}
-
-void testNewerCss() {
- var errors = [];
- final String input = r'''
-@media screen,print {
- .foobar_screen {
- width: 10px;
- }
-}
-@page {
- height: 22px;
- size: 3in 3in;
-}
-@page : left {
- width: 10px;
-}
-@page bar : left { @top-left { margin: 8px; } }
-@charset "ISO-8859-1";
-@charset 'ASCII';''';
-
- final String generated = r'''
-@media screen, print {
-.foobar_screen {
- width: 10px;
-}
-}
-@page {
- height: 22px;
- size: 3in 3in;
-}
-@page:left {
- width: 10px;
-}
-@page bar:left {
-@top-left {
- margin: 8px;
-}
-}
-@charset "ISO-8859-1";
-@charset "ASCII";''';
-
- var stylesheet = parseCss(input, errors: errors);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-}
-
-void testMediaQueries() {
- var errors = [];
- String input = '''
-@media screen and (-webkit-min-device-pixel-ratio:0) {
- .todo-item .toggle {
- background: none;
- }
- #todo-item .toggle {
- height: 40px;
- }
-}''';
- String generated = '''
-@media screen AND (-webkit-min-device-pixel-ratio:0) {
-.todo-item .toggle {
- background: none;
-}
-#todo-item .toggle {
- height: 40px;
-}
-}''';
-
- var stylesheet = parseCss(input, errors: errors, opts: options);
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-
- input = '''
- @media handheld and (min-width: 20em),
- screen and (min-width: 20em) {
- #id { color: red; }
- .myclass { height: 20px; }
- }
- @media print and (min-resolution: 300dpi) {
- #anotherId {
- color: #fff;
- }
- }
- @media print and (min-resolution: 280dpcm) {
- #finalId {
- color: #aaa;
- }
- .class2 {
- border: 20px;
- }
- }''';
- generated =
- '''@media handheld AND (min-width:20em), screen AND (min-width:20em) {
-#id {
- color: #f00;
-}
-.myclass {
- height: 20px;
-}
-} @media print AND (min-resolution:300dpi) {
-#anotherId {
- color: #fff;
-}
-} @media print AND (min-resolution:280dpcm) {
-#finalId {
- color: #aaa;
-}
-.class2 {
- border: 20px;
-}
-}''';
-
- stylesheet = parseCss(input, errors: errors..clear(), opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-
- input = '''
-@media only screen and (min-device-width: 4000px) and
- (min-device-height: 2000px), screen (another: 100px) {
- html {
- font-size: 10em;
- }
- }''';
- generated = '@media ONLY screen AND (min-device-width:4000px) '
- 'AND (min-device-height:2000px), screen (another:100px) {\n'
- 'html {\n font-size: 10em;\n}\n}';
-
- stylesheet = parseCss(input, errors: errors..clear(), opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-
- input = '''
-@media screen,print (min-device-width: 4000px) and
- (min-device-height: 2000px), screen (another: 100px) {
- html {
- font-size: 10em;
- }
- }''';
- generated = '@media screen, print (min-device-width:4000px) AND '
- '(min-device-height:2000px), screen (another:100px) {\n'
- 'html {\n font-size: 10em;\n}\n}';
-
- stylesheet = parseCss(input, errors: errors..clear(), opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-
- input = '''
-@import "test.css" ONLY screen, NOT print (min-device-width: 4000px);''';
- generated =
- '@import "test.css" ONLY screen, NOT print (min-device-width:4000px);';
-
- stylesheet = parseCss(input, errors: errors..clear(), opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-}
-
-void testFontFace() {
- var errors = [];
-
- final String input = '''
-@font-face {
- font-family: BBCBengali;
- src: url(fonts/BBCBengali.ttf) format("opentype");
- unicode-range: U+0A-FF, U+980-9FF, U+????, U+3???;
-}''';
- final String generated = '''@font-face {
- font-family: BBCBengali;
- src: url("fonts/BBCBengali.ttf") format("opentype");
- unicode-range: U+0A-FF, U+980-9FF, U+????, U+3???;
-}''';
- var stylesheet = parseCss(input, errors: errors, opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-
- final String input1 = '''
-@font-face {
- font-family: Gentium;
- src: url(http://example.com/fonts/Gentium.ttf);
- src: url(http://example.com/fonts/Gentium.ttf);
-}''';
- final String generated1 = '''@font-face {
- font-family: Gentium;
- src: url("http://example.com/fonts/Gentium.ttf");
- src: url("http://example.com/fonts/Gentium.ttf");
-}''';
-
- stylesheet = parseCss(input1, errors: errors..clear(), opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated1);
-
- final String input2 = '''
-@font-face {
-src: url(ideal-sans-serif.woff) format("woff"),
- url(basic-sans-serif.ttf) format("opentype"),
- local(Gentium Bold);
-}''';
- final String generated2 =
- '@font-face {\n'
- ' src: url("ideal-sans-serif.woff") '
- 'format("woff"), url("basic-sans-serif.ttf") '
- 'format("opentype"), local(Gentium Bold);\n}';
-
- stylesheet = parseCss(input2, errors: errors..clear(), opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated2);
-
- final String input3 = '''@font-face {
- font-family: MyGentium Text Ornaments;
- src: local(Gentium Bold), /* full font name */
- local(Gentium-Bold), /* Postscript name */
- url(GentiumBold.ttf); /* otherwise, download it */
- font-weight: bold;
-}''';
- final String generated3 = '''@font-face {
- font-family: MyGentium Text Ornaments;
- src: local(Gentium Bold), local(Gentium-Bold), url("GentiumBold.ttf");
- font-weight: bold;
-}''';
-
- stylesheet = parseCss(input3, errors: errors..clear(), opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated3);
-
- final String input4 = '''
-@font-face {
- font-family: STIXGeneral;
- src: local(STIXGeneral), url(/stixfonts/STIXGeneral.otf);
- unicode-range: U+000-49F, U+2000-27FF, U+2900-2BFF, U+1D400-1D7FF;
-}''';
- final String generated4 = '''@font-face {
- font-family: STIXGeneral;
- src: local(STIXGeneral), url("/stixfonts/STIXGeneral.otf");
- unicode-range: U+000-49F, U+2000-27FF, U+2900-2BFF, U+1D400-1D7FF;
-}''';
- stylesheet = parseCss(input4, errors: errors..clear(), opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated4);
-}
-
-void testCssFile() {
- var errors = [];
- final String input = r'''
-@import 'simple.css'
-@import "test.css" print
-@import url(test.css) screen, print
-@import url(http://google.com/maps/maps.css);
-
-div[href^='test'] {
- height: 10px;
-}
-
-@-webkit-keyframes pulsate {
- from {
- -webkit-transform: translate3d(0, 0, 0) scale(1.0);
- }
- 10% {
- -webkit-transform: translate3d(0, 0, 0) scale(1.0);
- }
- 30% {
- -webkit-transform: translate3d(0, 2, 0) scale(1.0);
- }
-}
-
-.foobar {
- grid-columns: 10px ("content" 1fr 10px)[4];
-}
-
-.test-background {
- background: url(http://www.foo.com/bar.png);
-}
-''';
-
- final String generated =
- '@import "simple.css"; '
- '@import "test.css" print; '
- '@import "test.css" screen, print; '
- '@import "http://google.com/maps/maps.css";\n'
- 'div[href^="test"] {\n'
- ' height: 10px;\n'
- '}\n'
- '@-webkit-keyframes pulsate {\n'
- ' from {\n'
- ' -webkit-transform: translate3d(0, 0, 0) scale(1.0);\n'
- ' }\n'
- ' 10% {\n'
- ' -webkit-transform: translate3d(0, 0, 0) scale(1.0);\n'
- ' }\n'
- ' 30% {\n'
- ' -webkit-transform: translate3d(0, 2, 0) scale(1.0);\n'
- ' }\n'
- '}\n'
- '.foobar {\n'
- ' grid-columns: 10px ("content" 1fr 10px) [4];\n'
- '}\n'
- '.test-background {\n'
- ' background: url("http://www.foo.com/bar.png");\n'
- '}';
- var stylesheet = parseCss(input, errors: errors);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-}
-
-void testCompactEmitter() {
- var errors = [];
-
- // Check !import compactly emitted.
- final String input = r'''
-div {
- color: green !important;
-}
-''';
- final String generated = "div { color: green!important; }";
-
- var stylesheet = parseCss(input, errors: errors);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(compactOuptut(stylesheet), generated);
-
- // Check namespace directive compactly emitted.
- final String input2 = "@namespace a url(http://www.example.org/a);";
- final String generated2 = "@namespace a url(http://www.example.org/a);";
-
- var stylesheet2 = parseCss(input2, errors: errors..clear());
-
- expect(stylesheet2 != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(compactOuptut(stylesheet2), generated2);
-}
-
-void testNotSelectors() {
- var errors = [];
-
- final String input = r'''
-.details:not(.open-details) x-element,
-.details:not(.open-details) .summary {
- overflow: hidden;
-}
-
-.details:not(.open-details) x-icon {
- margin-left: 99px;
-}
-
-.kind-class .details:not(.open-details) x-icon {
- margin-left: 0px;
-}
-
-.name {
- margin-left: 0px;
-}
-
-.details:not(.open-details) .the-class {
- width: 80px;
-}
-
-*:focus
-{
- outline: none;
-}
-
-body > h2:not(:first-of-type):not(:last-of-type) {
- color: red;
-}
-
-.details-1:not([DISABLED]) {
- outline: none;
-}
-
-html|*:not(:link):not(:visited) {
- width: 92%;
-}
-
-*|*:not(*) {
- font-weight: bold;
-}
-
-*:not(:not([disabled])) { color: blue; }
-''';
- final String generated = r'''
-.details:not(.open-details) x-element, .details:not(.open-details) .summary {
- overflow: hidden;
-}
-.details:not(.open-details) x-icon {
- margin-left: 99px;
-}
-.kind-class .details:not(.open-details) x-icon {
- margin-left: 0px;
-}
-.name {
- margin-left: 0px;
-}
-.details:not(.open-details) .the-class {
- width: 80px;
-}
-*:focus {
- outline: none;
-}
-body > h2:not(:first-of-type):not(:last-of-type) {
- color: #f00;
-}
-.details-1:not([DISABLED]) {
- outline: none;
-}
-html|*:not(:link):not(:visited) {
- width: 92%;
-}
-*|*:not(*) {
- font-weight: bold;
-}
-*:not(:not([disabled])) {
- color: #00f;
-}''';
-
- var stylesheet = parseCss(input, errors: errors, opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-}
-
-void testIE() {
- var errors = [];
- final String input =
-".test {\n"
-" filter: progid:DXImageTransform.Microsoft.gradient"
-"(GradientType=0,StartColorStr='#9d8b83', EndColorStr='#847670');\n"
-"}";
- final String generated =
-".test {\n"
-" filter: progid:DXImageTransform.Microsoft.gradient"
-"(GradientType=0,StartColorStr='#9d8b83', EndColorStr='#847670');\n"
-"}";
-
- var stylesheet = parseCss(input, errors: errors, opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-
- final String input2 =
-".test {\n"
-" filter: progid:DXImageTransform.Microsoft.gradient"
-"(GradientType=0,StartColorStr='#9d8b83', EndColorStr='#847670')\n"
-" progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n"
-"}";
-
- final String generated2 =
-".test {\n"
-" filter: progid:DXImageTransform.Microsoft.gradient"
-"(GradientType=0,StartColorStr='#9d8b83', EndColorStr='#847670')\n"
-" progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);\n"
-"}";
-
- stylesheet = parseCss(input2, errors: errors..clear(), opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated2);
-
- final String input3 = '''
-div {
- filter: alpha(opacity=80); /* IE7 and under */
- -ms-filter: "Alpha(Opacity=40)"; /* IE8 and newer */
-
- Filter: Blur(Add = 0, Direction = 225, Strength = 10);
- Filter: FlipV;
- Filter: Gray;
- FILTER: Chroma(Color = #000000) Mask(Color=#00FF00);
- Filter: Alpha(Opacity=100, FinishOpacity=0, Style=2, StartX=20, StartY=40,
- FinishX=0, FinishY=0) Wave(Add=0, Freq=5, LightStrength=20,
- Phase=220, Strength=10);
-}
-''';
- final String generated3 = 'div {\n filter: alpha(opacity=80);\n'
- ' -ms-filter: "Alpha(Opacity=40)";\n'
- ' Filter: Blur(Add = 0, Direction = 225, Strength = 10);\n'
- ' Filter: FlipV;\n Filter: Gray;\n'
- ' FILTER: Chroma(Color = #000000) Mask(Color=#00FF00);\n'
- ' Filter: Alpha(Opacity=100, FinishOpacity=0, Style=2, '
- 'StartX=20, StartY=40, \n'
- ' FinishX=0, FinishY=0) Wave(Add=0, Freq=5, LightStrength=20, \n'
- ' Phase=220, Strength=10);\n}';
-
- stylesheet = parseCss(input3, errors: errors..clear(), opts: options);
-
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated3);
-}
-
-/**
- * Test IE specific declaration syntax:
- * IE6 property name prefixed with _ (normal CSS property name can start
- * with an underscore).
- *
- * IE7 or below property add asterisk before the CSS property.
- *
- * IE8 or below add \9 at end of declaration expression e.g.,
- * background: red\9;
- */
-void testIEDeclaration() {
- var errors = [];
-
- final input = '''
-.testIE-6 {
- _zoom : 5;
-}
-.clearfix {
- *zoom: 1;
-}
-audio, video {
- display: inline-block;
- *display: inline;
- *zoom: 1;
-}
-input {
- *overflow: visible;
- line-height: normal;
-}
-.uneditable-input:focus {
- border-color: rgba(82, 168, 236, 0.8);
- outline: 0;
- outline: thin dotted \\9; /* IE6-9 */
-}
-
-input[type="radio"], input[type="checkbox"] {
- margin-top: 1px \\9;
- *margin-top: 0;
-}
-
-input.search-query {
- padding-right: 14px;
- padding-right: 4px \\9;
- padding-left: 14px;
- padding-left: 4px \\9; /* IE7-8 no border-radius, don't indent padding. */
-}
-
-.btn.active {
- background-color: #cccccc \\9;
-}
-
-@-webkit-keyframes progress-bar-stripes {
-from {
-background-position: 40px 0;
-}
-to {
-background-position: 0 0;
-}
-}
-
-@-moz-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-
-@-ms-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-
-@-o-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-
-@keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}''';
-
- final generated = '''.testIE-6 {
- _zoom: 5;
-}
-.clearfix {
- *zoom: 1;
-}
-audio, video {
- display: inline-block;
- *display: inline;
- *zoom: 1;
-}
-input {
- *overflow: visible;
- line-height: normal;
-}
-.uneditable-input:focus {
- border-color: rgba(82, 168, 236, 0.8);
- outline: 0;
- outline: thin dotted \\9;
-}
-input[type="radio"], input[type="checkbox"] {
- margin-top: 1px \\9;
- *margin-top: 0;
-}
-input.search-query {
- padding-right: 14px;
- padding-right: 4px \\9;
- padding-left: 14px;
- padding-left: 4px \\9;
-}
-.btn.active {
- background-color: #ccc \\9;
-}
-@-webkit-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-@-moz-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-@keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-@-o-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}
-@keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-}''';
-
- var stylesheet = parseCss(input, errors: errors, opts: options);
- expect(stylesheet != null, true);
- expect(errors.isEmpty, true, reason: errors.toString());
- expect(prettyPrint(stylesheet), generated);
-}
-
-void testHangs() {
- final optionErrors = ['--no-colors', '--warnings_as_errors', 'memory'];
- var errors = [];
-
- // Bad hexvalue had caused a hang in processTerm.
- final input = r'''#a { color: #ebebeburl(0/IE8+9+); }''';
- var stylesheet = parseCss(input, errors: errors, opts: optionErrors);
-
- expect(stylesheet != null, true);
- expect(errors.length, 3, reason: errors.toString());
-
- var errorMessage = errors[0];
- expect(errorMessage.message, contains('Bad hex number'));
- expect(errorMessage.span, isNotNull);
- expect(errorMessage.span.start.line, 0);
- expect(errorMessage.span.start.column, 12);
- expect(errorMessage.span.text, '#ebebeburl');
-
- errorMessage = errors[1];
- expect(errorMessage.message, contains('expected }, but found +'));
- expect(errorMessage.span, isNotNull);
- expect(errorMessage.span.start.line, 0);
- expect(errorMessage.span.start.column, 30);
- expect(errorMessage.span.text, '+');
-
- errorMessage = errors[2];
- expect(errorMessage.message, contains('premature end of file unknown CSS'));
- expect(errorMessage.span, isNotNull);
- expect(errorMessage.span.start.line, 0);
- expect(errorMessage.span.start.column, 31);
- expect(errorMessage.span.text, ')');
-
- // Missing closing parenthesis for keyframes.
- final input2 = r'''@-ms-keyframes progress-bar-stripes {
- from {
- background-position: 40px 0;
- }
- to {
- background-position: 0 0;
- }
-''';
-
- stylesheet = parseCss(input2, errors: errors..clear(), opts: optionErrors);
-
- expect(stylesheet != null, true);
-
- expect(errors.length, 1, reason: errors.toString());
-
- errorMessage = errors[0];
- expect(errorMessage.message, contains('unexpected end of file'));
- expect(errorMessage.span, isNotNull);
- expect(errorMessage.span.start.line, 7);
- expect(errorMessage.span.start.column, 0);
- expect(errorMessage.span.text.trim(), '');
-}
-
-main() {
- test('Simple Terms', testSimpleTerms);
- test('Declarations', testDeclarations);
- test('Identifiers', testIdentifiers);
- test('Composites', testComposites);
- test('Units', testUnits);
- test('Unicode', testUnicode);
- test('Newer CSS', testNewerCss);
- test('Media Queries', testMediaQueries);
- test('Font-Face', testFontFace);
- test('CSS file', testCssFile);
- test('Compact Emitter', testCompactEmitter);
- test('Selector Negation', testNotSelectors);
- test('IE stuff', testIE);
- test('IE declaration syntax', testIEDeclaration);
- test('Hanging bugs', testHangs);
-}
« no previous file with comments | « pkg/csslib/test/debug_test.dart ('k') | pkg/csslib/test/error_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698