yuicssmin 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. data/.travis.yml +7 -0
  2. data/CHANGES.md +4 -0
  3. data/README.md +5 -1
  4. data/lib/yuicssmin/version.rb +1 -1
  5. data/spec/tests/background-position.css +2 -0
  6. data/spec/tests/background-position.css.min +1 -0
  7. data/spec/tests/border-none.css +5 -0
  8. data/spec/tests/border-none.css.min +1 -0
  9. data/spec/tests/box-model-hack.css +9 -0
  10. data/spec/tests/box-model-hack.css.min +1 -0
  11. data/spec/tests/bug2527974.css +10 -0
  12. data/spec/tests/bug2527974.css.min +1 -0
  13. data/spec/tests/bug2527991.css +19 -0
  14. data/spec/tests/bug2527991.css.min +1 -0
  15. data/spec/tests/bug2527998.css +4 -0
  16. data/spec/tests/bug2527998.css.min +1 -0
  17. data/spec/tests/bug2528034.css +5 -0
  18. data/spec/tests/bug2528034.css.min +1 -0
  19. data/spec/tests/charset-media.css +9 -0
  20. data/spec/tests/charset-media.css.min +1 -0
  21. data/spec/tests/color-simple.css +8 -0
  22. data/spec/tests/color-simple.css.min +1 -0
  23. data/spec/tests/color.css +46 -0
  24. data/spec/tests/color.css.min +1 -0
  25. data/spec/tests/comment.css +3 -0
  26. data/spec/tests/comment.css.min +1 -0
  27. data/spec/tests/concat-charset.css +15 -0
  28. data/spec/tests/concat-charset.css.min +1 -0
  29. data/spec/tests/dataurl-base64-doublequotes.css +23 -0
  30. data/spec/tests/dataurl-base64-doublequotes.css.min +1 -0
  31. data/spec/tests/dataurl-base64-eof.css +10 -0
  32. data/spec/tests/dataurl-base64-eof.css.min +1 -0
  33. data/spec/tests/dataurl-base64-linebreakindata.css +34 -0
  34. data/spec/tests/dataurl-base64-linebreakindata.css.min +1 -0
  35. data/spec/tests/dataurl-base64-noquotes.css +26 -0
  36. data/spec/tests/dataurl-base64-noquotes.css.min +1 -0
  37. data/spec/tests/dataurl-base64-singlequotes.css +23 -0
  38. data/spec/tests/dataurl-base64-singlequotes.css.min +1 -0
  39. data/spec/tests/dataurl-base64-twourls.css +27 -0
  40. data/spec/tests/dataurl-base64-twourls.css.min +1 -0
  41. data/spec/tests/dataurl-dbquote-font.css +30 -0
  42. data/spec/tests/dataurl-dbquote-font.css.min +5 -0
  43. data/spec/tests/dataurl-nonbase64-doublequotes.css +13 -0
  44. data/spec/tests/dataurl-nonbase64-doublequotes.css.min +1 -0
  45. data/spec/tests/dataurl-nonbase64-noquotes.css +11 -0
  46. data/spec/tests/dataurl-nonbase64-noquotes.css.min +1 -0
  47. data/spec/tests/dataurl-nonbase64-singlequotes.css +15 -0
  48. data/spec/tests/dataurl-nonbase64-singlequotes.css.min +2 -0
  49. data/spec/tests/dataurl-noquote-multiline-font.css +31 -0
  50. data/spec/tests/dataurl-noquote-multiline-font.css.min +3 -0
  51. data/spec/tests/dataurl-realdata-doublequotes.css +90 -0
  52. data/spec/tests/dataurl-realdata-doublequotes.css.min +1 -0
  53. data/spec/tests/dataurl-realdata-noquotes.css +90 -0
  54. data/spec/tests/dataurl-realdata-noquotes.css.min +1 -0
  55. data/spec/tests/dataurl-realdata-singlequotes.css +90 -0
  56. data/spec/tests/dataurl-realdata-singlequotes.css.min +1 -0
  57. data/spec/tests/dataurl-realdata-yuiapp.css +106 -0
  58. data/spec/tests/dataurl-realdata-yuiapp.css.min +1 -0
  59. data/spec/tests/dataurl-singlequote-font.css +30 -0
  60. data/spec/tests/dataurl-singlequote-font.css.min +3 -0
  61. data/spec/tests/decimals.css +3 -0
  62. data/spec/tests/decimals.css.min +1 -0
  63. data/spec/tests/dollar-header.css +7 -0
  64. data/spec/tests/dollar-header.css.min +3 -0
  65. data/spec/tests/font-face.css +6 -0
  66. data/spec/tests/font-face.css.min +1 -0
  67. data/spec/tests/ie5mac.css +5 -0
  68. data/spec/tests/ie5mac.css.min +1 -0
  69. data/spec/tests/media-empty-class.css +16 -0
  70. data/spec/tests/media-empty-class.css.min +1 -0
  71. data/spec/tests/media-multi.css +3 -0
  72. data/spec/tests/media-multi.css.min +1 -0
  73. data/spec/tests/media-test.css +3 -0
  74. data/spec/tests/media-test.css.min +1 -0
  75. data/spec/tests/opacity-filter.css +14 -0
  76. data/spec/tests/opacity-filter.css.min +1 -0
  77. data/spec/tests/preserve-case.css +15 -0
  78. data/spec/tests/preserve-case.css.min +1 -0
  79. data/spec/tests/preserve-new-line.css +6 -0
  80. data/spec/tests/preserve-new-line.css.min +3 -0
  81. data/spec/tests/preserve-strings.css +7 -0
  82. data/spec/tests/preserve-strings.css.min +1 -0
  83. data/spec/tests/pseudo-first.css +16 -0
  84. data/spec/tests/pseudo-first.css.min +1 -0
  85. data/spec/tests/pseudo.css +4 -0
  86. data/spec/tests/pseudo.css.min +1 -0
  87. data/spec/tests/special-comments.css +13 -0
  88. data/spec/tests/special-comments.css.min +9 -0
  89. data/spec/tests/star-underscore-hacks.css +5 -0
  90. data/spec/tests/star-underscore-hacks.css.min +1 -0
  91. data/spec/tests/string-in-comment.css +8 -0
  92. data/spec/tests/string-in-comment.css.min +1 -0
  93. data/spec/tests/webkit-transform.css +2 -0
  94. data/spec/tests/webkit-transform.css.min +1 -0
  95. data/spec/tests/zeros.css +6 -0
  96. data/spec/tests/zeros.css.min +1 -0
  97. data/spec/yuicssmin_spec.rb +28 -32
  98. data/yuicssmin.gemspec +3 -2
  99. metadata +199 -13
@@ -0,0 +1 @@
1
+ html{background:#fff;color:#555;height:100%}#hd,#bd,#ft{padding:0 50px}#bd{padding-bottom:50px;border-bottom:1px solid #006e9c}#ft{background:transparent no-repeat 0 100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAAAeCAMAAAC/pnaKAAAAwFBMVEUkXIAoYYQoYYQoYYQyao02bpE6cpQ6cpREe51LgqNUiqtUiqtUiqtZj7BckrNlmrtlmrtlmrtroMB3qsp3qsp3qsp+sdCHudiHudiHudiHudiPwN+YyOaYyOaYyOaf0O2g0O6n1vOn1vOn1vOn1vOw3vu45f245f245f3B7f7K9f7K9f7K9f7X/v7X/v7p//7p//79//79//4AAABhAGMAbwBzAC4AcwB0AHIAaQBuAGcAcwABAAAAwIwmGwEAAABQQKFUAAAAQHRSTlP///////////////////////////////////////////////////////////////////8A////////////////0pfSbwAAAdtJREFUOI2NlNGqgzAMhv/ClDlQQcFdKOx4McFCKcH3f7eTtLWr07mFiUvbzz9Nk2LZGRH5937qZTiGyEx0Cr5xQpEd6xzNueCGc9SzUmAzP8cplO1zgRRutBAlM9EhZwknWj1LKXkwbOVojTqMEpKZOfeUD3OnR24VWeJf1OOBTnTgw8zZr3LyOlbdrWrdGlpG6Alz4Ni3RcT4Ldm8wHpOo9Yo5CPsdngM6D3HmLlESrgHD+YvrtEuUeLeMf7x7j23GJVgbJoHs0/cI3B7TNkfON5btsEUrvSdY694U0P9nXMp2mDsdbLmY14CN8XDjtzgo9CuqpYnGoMscDUmn08qsbOn/3Lte6rgP1eM7qQ1YMP+yPhiTmx2laDQspytgJI1MbIzZ7yHfj2/hYYtZ1xMM4dc3iTukjgJyKsrUBEH4uqFXNUh3aXxtWjbC3DpH8LRVPJ8MXLoA8fsz51ue73Q+1z7RkTEF0dWa1o5a8001C6ZbGuzh0bSTo9iS8X+C/NWbfTW5uZ9Vu4QaL20Xv3uhgyrZUXVtI2NfS3fbzgP75dNek/YbrL+k/EykecuZf6ZOzDJYsf9PCV3xhFHq7043mw+H1ylW+5Ab5jpADuPM2Z1P3POLWnUG/sHnIDsqkOjlqoAAAAASUVORK5CYII=);padding:0 0 40px 0;margin:50px}#hd,#bd{background:#f9f9f9}body{margin:0;padding:0;font:12px "Helvetica Nueue",Arial,sans-serif}#hd{color:#fff;padding-top:50px;margin:0}#hd,h1,h2,p,.color{margin:auto}h1,h2,a{color:#006e9c}h1,h2{margin-top:0}h4 .title{font-weight:bold;letter-spacing:-2px;font-size:47px;text-shadow:0 1px 0 #369;background:#006e9d;color:#fff;padding:0 10px}h4{display:block;float:right;margin:0 0 0 20px}h4 .what{display:block;padding:4px;text-align:center;font-weight:normal}h4 .version{font-size:11px;color:#ccc}h2{font-size:40px;font-family:"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",sans-serif;font-weight:300}h4,p{padding:6px 0 6px}#ft p.fine,#ft p.fine a{color:#999}#ft p.intro{font-size:12px}#bd{font-size:14px;color:#666}#ft p{font-size:11px}
@@ -0,0 +1,30 @@
1
+ /*csslint fontfamily: true*/
2
+
3
+ /**
4
+ * Foo
5
+ */
6
+
7
+ .y-ff-1 {
8
+ font-family:"Foo Bar",Helvetica,Arial;
9
+ text-rendering: optimizeLegibility;
10
+ }
11
+
12
+ .ua-op .y-ff-1 {
13
+ /* Some Comment */
14
+ font-family:Helvetica,Arial;
15
+ }
16
+
17
+ /*
18
+ Foo
19
+
20
+ Bar
21
+ */
22
+
23
+ @font-face {
24
+ font-family: "Foo Bar";
25
+ src: url('data:font/truetype;base64,gRbIUFAIrsQNGditEWbAUKwAA') format("truetype"),
26
+ url("http://yuilibrary.com/fonts/foo-bar.svg#webfontse22fewwr") format("svg");
27
+ font-weight: normal;
28
+ font-style: normal;
29
+ }
30
+
@@ -0,0 +1,3 @@
1
+ .y-ff-1{font-family:"Foo Bar",Helvetica,Arial;text-rendering:optimizeLegibility}.ua-op .y-ff-1{font-family:Helvetica,Arial}@font-face{font-family:"Foo Bar";src:url('data:font/truetype;base64,gRbIUFAIrsQNGditEWbAUKwAA') format("truetype"),url("http://yuilibrary.com/fonts/foo-bar.svg#webfontse22fewwr") format("svg");font-weight:normal;font-style:normal}
2
+
3
+
@@ -0,0 +1,3 @@
1
+ ::selection {
2
+ margin: 0.6px 0.333pt 1.2em 8.8cm;
3
+ }
@@ -0,0 +1 @@
1
+ ::selection{margin:.6px .333pt 1.2em 8.8cm}
@@ -0,0 +1,7 @@
1
+ /*!
2
+ $Header: /temp/dirname/filename.css 3 2/02/08 3:37p JSmith $
3
+ */
4
+
5
+ foo {
6
+ bar: baz
7
+ }
@@ -0,0 +1,3 @@
1
+ /*!
2
+ $Header: /temp/dirname/filename.css 3 2/02/08 3:37p JSmith $
3
+ */foo{bar:baz}
@@ -0,0 +1,6 @@
1
+ @font-face {
2
+ font-family: 'gzipper';
3
+ src: url(yanone.eot);
4
+ src: local('gzipper'),
5
+ url(yanone.ttf) format('truetype');
6
+ }
@@ -0,0 +1 @@
1
+ @font-face{font-family:'gzipper';src:url(yanone.eot);src:local('gzipper'),url(yanone.ttf) format('truetype')}
@@ -0,0 +1,5 @@
1
+ /* Ignore the next rule in IE mac \*/
2
+ .selector {
3
+ color: khaki;
4
+ }
5
+ /* Stop ignoring in IE mac */
@@ -0,0 +1 @@
1
+ /*\*/.selector{color:khaki}/**/
@@ -0,0 +1,16 @@
1
+ /*! preserved */
2
+ emptiness {}
3
+
4
+ @import "another.css";
5
+ /* I'm empty - delete me */
6
+ empty { ;}
7
+
8
+ @media print {
9
+ .noprint { display: none; }
10
+ }
11
+
12
+ @media screen {
13
+ /* this rule should be removed, not simply minified.*/
14
+ .breakme {}
15
+ .printonly { display: none; }
16
+ }
@@ -0,0 +1 @@
1
+ /*! preserved */@import "another.css";@media print{.noprint{display:none}}@media screen{.printonly{display:none}}
@@ -0,0 +1,3 @@
1
+ @media only all and (max-width:50em), only all and (max-device-width:800px), only all and (max-width:780px) {
2
+ some-css : here
3
+ }
@@ -0,0 +1 @@
1
+ @media only all and (max-width:50em),only all and (max-device-width:800px),only all and (max-width:780px){some-css:here}
@@ -0,0 +1,3 @@
1
+ @media screen and (-webkit-min-device-pixel-ratio:0) {
2
+ some-css : here
3
+ }
@@ -0,0 +1 @@
1
+ @media screen and (-webkit-min-device-pixel-ratio:0){some-css:here}
@@ -0,0 +1,14 @@
1
+ /* example from https://developer.mozilla.org/en/CSS/opacity */
2
+ pre { /* make the box translucent (80% opaque) */
3
+ border: solid red;
4
+ opacity: 0.8; /* Firefox, Safari(WebKit), Opera */
5
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; /* IE 8 */
6
+ filter: PROGID:DXImageTransform.Microsoft.Alpha(Opacity=80); /* IE 4-7 */
7
+ zoom: 1; /* set "zoom", "width" or "height" to trigger "hasLayout" in IE 7 and lower */
8
+ }
9
+
10
+ /** and again */
11
+ code {
12
+ -ms-filter: "PROGID:DXImageTransform.Microsoft.Alpha(Opacity=80)"; /* IE 8 */
13
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); /* IE 4-7 */
14
+ }
@@ -0,0 +1 @@
1
+ pre{border:solid red;opacity:.8;-ms-filter:"alpha(opacity=80)";filter:alpha(opacity=80);zoom:1}code{-ms-filter:"alpha(opacity=80)";filter:alpha(opacity=80)}
@@ -0,0 +1,15 @@
1
+ #AddAddressForm {
2
+ padding: 0;
3
+ }
4
+ #AddAddressForm .messageBoxNeutral {
5
+ padding: 0;
6
+ }
7
+ #FeedbackMailForm{
8
+ padding: 0;
9
+ }
10
+ #FeedbackMailForm .classe{
11
+ margin: 0;
12
+ }
13
+ .classes, #FeedBackMailForm {
14
+ margin: 0;
15
+ }
@@ -0,0 +1 @@
1
+ #AddAddressForm{padding:0}#AddAddressForm .messageBoxNeutral{padding:0}#FeedbackMailForm{padding:0}#FeedbackMailForm .classe{margin:0}.classes,#FeedBackMailForm{margin:0}
@@ -0,0 +1,6 @@
1
+ #sel-o {
2
+ content: "on\"ce upon \
3
+ a time";
4
+ content: 'once upon \
5
+ a ti\'me';
6
+ }
@@ -0,0 +1,3 @@
1
+ #sel-o{content:"on\"ce upon \
2
+ a time";content:'once upon \
3
+ a ti\'me'}
@@ -0,0 +1,7 @@
1
+ /* preserving strings */
2
+ .sele {
3
+ content: "\"keep \" me";
4
+ something: '\\\' . . ';
5
+ else: 'empty{}';
6
+ content: "/* test */"; /* <---- this is not a comment, should be be kept */
7
+ }
@@ -0,0 +1 @@
1
+ .sele{content:"\"keep \" me";something:'\\\' . . ';else:'empty{}';content:"/* test */"}
@@ -0,0 +1,16 @@
1
+ /*
2
+ because of IE6 first-letter and first-line
3
+ must be followed by a space
4
+ http://reference.sitepoint.com/css/pseudoelement-firstletter
5
+ Thanks: P.Sorokin comment at http://www.phpied.com/cssmin-js/
6
+ */
7
+ p:first-letter{
8
+ buh: hum;
9
+ }
10
+ p:first-line{
11
+ baa: 1;
12
+ }
13
+
14
+ p:first-line,a,p:first-letter,b{
15
+ color: red;
16
+ }
@@ -0,0 +1 @@
1
+ p:first-letter {buh:hum}p:first-line {baa:1}p:first-line ,a,p:first-letter ,b{color:red}
@@ -0,0 +1,4 @@
1
+ p :link {
2
+ ba:zinga;;;
3
+ foo: bar;;;
4
+ }
@@ -0,0 +1 @@
1
+ p :link{ba:zinga;foo:bar}
@@ -0,0 +1,13 @@
1
+ /*!************88****
2
+ Preserving comments
3
+ as they are
4
+ ********************
5
+ Keep the initial !
6
+ *******************/
7
+ #yo {
8
+ ma: "ma";
9
+ }
10
+ /*!
11
+ I said
12
+ pre-
13
+ serve! */
@@ -0,0 +1,9 @@
1
+ /*!************88****
2
+ Preserving comments
3
+ as they are
4
+ ********************
5
+ Keep the initial !
6
+ *******************/#yo{ma:"ma"}/*!
7
+ I said
8
+ pre-
9
+ serve! */
@@ -0,0 +1,5 @@
1
+ #elementarr {
2
+ width: 1px;
3
+ *width: 3pt;
4
+ _width: 2em;
5
+ }
@@ -0,0 +1 @@
1
+ #elementarr{width:1px;*width:3pt;_width:2em}
@@ -0,0 +1,8 @@
1
+ /* te " st */
2
+ a{a:1}
3
+ /*!"preserve" me*/
4
+ b{content: "/**/"}
5
+ /* quite " quote ' \' \" */
6
+ /* ie mac \*/
7
+ c {c : 3}
8
+ /* end hiding */
@@ -0,0 +1 @@
1
+ a{a:1}/*!"preserve" me*/b{content:"/**/"}/*\*/c{c:3}/**/
@@ -0,0 +1,2 @@
1
+ c {-webkit-transform-origin: 0 0;}
2
+ d {-MOZ-TRANSFORM-ORIGIN: 0 0 }
@@ -0,0 +1 @@
1
+ c{-webkit-transform-origin:0 0}d{-moz-transform-origin:0 0}
@@ -0,0 +1,6 @@
1
+ a {
2
+ margin: 0px 0pt 0em 0%;
3
+ _padding-top: 0ex;
4
+ background-position: 0 0;
5
+ padding: 0in 0cm 0mm 0pc
6
+ }
@@ -0,0 +1 @@
1
+ a{margin:0;_padding-top:0;background-position:0 0;padding:0}
@@ -69,8 +69,7 @@ describe "Yuicssmin" do
69
69
  font-weight: normal;
70
70
  }
71
71
  EOS
72
- minified = Yuicssmin.compress(source)
73
- minified.should eq('.classname{font-weight:normal}')
72
+ Yuicssmin.compress(source).should eq('.classname{font-weight:normal}')
74
73
  end
75
74
 
76
75
  it "preserves special comments" do
@@ -83,13 +82,12 @@ describe "Yuicssmin" do
83
82
  font-weight: normal;
84
83
  }
85
84
  EOS
86
- minified = Yuicssmin.compress(source)
87
85
  result = <<-EOS
88
86
  /*!
89
87
  (c) Very Important Comment
90
88
  */.classname{font-weight:normal}
91
89
  EOS
92
- (minified + "\n").should eq(result)
90
+ (Yuicssmin.compress(source) + "\n").should eq(result)
93
91
  end
94
92
 
95
93
  it "removes last semi-colon in a block" do
@@ -99,8 +97,7 @@ describe "Yuicssmin" do
99
97
  border-bottom: 2px;
100
98
  }
101
99
  EOS
102
- minified = Yuicssmin.compress(source)
103
- minified.should eq('.classname{border-top:1px;border-bottom:2px}')
100
+ Yuicssmin.compress(source).should eq('.classname{border-top:1px;border-bottom:2px}')
104
101
  end
105
102
 
106
103
  it "removes extra semi-colons" do
@@ -110,8 +107,7 @@ describe "Yuicssmin" do
110
107
  border-bottom: 2px;;;
111
108
  }
112
109
  EOS
113
- minified = Yuicssmin.compress(source)
114
- minified.should eq('.classname{border-top:1px;border-bottom:2px}')
110
+ Yuicssmin.compress(source).should eq('.classname{border-top:1px;border-bottom:2px}')
115
111
  end
116
112
 
117
113
  it "removes empty declarations" do
@@ -119,8 +115,7 @@ describe "Yuicssmin" do
119
115
  .empty { ;}
120
116
  .nonempty {border: 0;}
121
117
  EOS
122
- minified = Yuicssmin.compress(source)
123
- minified.should eq('.nonempty{border:0}')
118
+ Yuicssmin.compress(source).should eq('.nonempty{border:0}')
124
119
  end
125
120
 
126
121
  it "simplifies zero values" do
@@ -131,8 +126,7 @@ describe "Yuicssmin" do
131
126
  padding: 0in 0cm 0mm 0pc
132
127
  }
133
128
  EOS
134
- minified = Yuicssmin.compress(source)
135
- minified.should eq('a{margin:0;background-position:0 0;padding:0}')
129
+ Yuicssmin.compress(source).should eq('a{margin:0;background-position:0 0;padding:0}')
136
130
  end
137
131
 
138
132
  it "removes leading zeros from floats" do
@@ -141,8 +135,7 @@ describe "Yuicssmin" do
141
135
  margin: 0.6px 0.333pt 1.2em 8.8cm;
142
136
  }
143
137
  EOS
144
- minified = Yuicssmin.compress(source)
145
- minified.should eq('.classname{margin:.6px .333pt 1.2em 8.8cm}')
138
+ Yuicssmin.compress(source).should eq('.classname{margin:.6px .333pt 1.2em 8.8cm}')
146
139
  end
147
140
 
148
141
  it "simplifies color values but preserves filter properties, RGBa values and ID strings" do
@@ -153,8 +146,7 @@ describe "Yuicssmin" do
153
146
  background: none repeat scroll 0 0 rgb(255, 0,0);
154
147
  }
155
148
  EOS
156
- minified = Yuicssmin.compress(source)
157
- minified.should eq('.color-me{color:#7b7b7b;border-color:#fed;background:none repeat scroll 0 0 #f00}')
149
+ Yuicssmin.compress(source).should eq('.color-me{color:#7b7b7b;border-color:#fed;background:none repeat scroll 0 0 #f00}')
158
150
 
159
151
  source = <<-EOS
160
152
  #AABBCC {
@@ -162,8 +154,7 @@ describe "Yuicssmin" do
162
154
  filter: chroma(color="#FFFFFF");
163
155
  }
164
156
  EOS
165
- minified = Yuicssmin.compress(source)
166
- minified.should eq('#AABBCC{color:rgba(1,2,3,4);filter:chroma(color="#FFFFFF")}')
157
+ Yuicssmin.compress(source).should eq('#AABBCC{color:rgba(1,2,3,4);filter:chroma(color="#FFFFFF")}')
167
158
  end
168
159
 
169
160
  it "only keeps the first charset declaration" do
@@ -179,8 +170,7 @@ describe "Yuicssmin" do
179
170
  border-width: 10px;
180
171
  }
181
172
  EOS
182
- minified = Yuicssmin.compress(source)
183
- minified.should eq('@charset "utf-8";#foo{border-width:1px}#bar{border-width:10px}')
173
+ Yuicssmin.compress(source).should eq('@charset "utf-8";#foo{border-width:1px}#bar{border-width:10px}')
184
174
  end
185
175
 
186
176
  it "simplifies the IE opacity filter syntax" do
@@ -190,8 +180,7 @@ describe "Yuicssmin" do
190
180
  filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); /* IE < 8 */
191
181
  }
192
182
  EOS
193
- minified = Yuicssmin.compress(source)
194
- minified.should eq('.classname{-ms-filter:"alpha(opacity=80)";filter:alpha(opacity=80)}')
183
+ Yuicssmin.compress(source).should eq('.classname{-ms-filter:"alpha(opacity=80)";filter:alpha(opacity=80)}')
195
184
  end
196
185
 
197
186
  it "replaces 'none' values with 0 where allowed" do
@@ -202,8 +191,7 @@ describe "Yuicssmin" do
202
191
  outline: none;
203
192
  }
204
193
  EOS
205
- minified = Yuicssmin.compress(source)
206
- minified.should eq('.classname{border:0;background:0;outline:0}')
194
+ Yuicssmin.compress(source).should eq('.classname{border:0;background:0;outline:0}')
207
195
  end
208
196
 
209
197
  it "tolerates underscore/star hacks" do
@@ -214,8 +202,7 @@ describe "Yuicssmin" do
214
202
  _width: 3px;
215
203
  }
216
204
  EOS
217
- minified = Yuicssmin.compress(source)
218
- minified.should eq('#element{width:1px;*width:2px;_width:3px}')
205
+ Yuicssmin.compress(source).should eq('#element{width:1px;*width:2px;_width:3px}')
219
206
  end
220
207
 
221
208
  it "tolerates child selector hacks" do
@@ -224,8 +211,7 @@ describe "Yuicssmin" do
224
211
  color: blue;
225
212
  }
226
213
  EOS
227
- minified = Yuicssmin.compress(source)
228
- minified.should eq('html>/**/body p{color:blue}')
214
+ Yuicssmin.compress(source).should eq('html>/**/body p{color:blue}')
229
215
  end
230
216
 
231
217
  it "tolerates IE5/Mac hacks" do
@@ -236,8 +222,7 @@ describe "Yuicssmin" do
236
222
  }
237
223
  /* Stop ignoring in IE mac */
238
224
  EOS
239
- minified = Yuicssmin.compress(source)
240
- minified.should eq('/*\*/.selector{color:khaki}/**/')
225
+ Yuicssmin.compress(source).should eq('/*\*/.selector{color:khaki}/**/')
241
226
  end
242
227
 
243
228
  it "tolerates box model hacks" do
@@ -252,8 +237,19 @@ describe "Yuicssmin" do
252
237
  width: 200px; /* others */
253
238
  }
254
239
  EOS
255
- minified = Yuicssmin.compress(source)
256
- minified.should eq('#elem{width:100px;voice-family:"\"}\"";voice-family:inherit;width:200px}html>body #elem{width:200px}')
240
+ Yuicssmin.compress(source).should eq('#elem{width:100px;voice-family:"\"}\"";voice-family:inherit;width:200px}html>body #elem{width:200px}')
241
+ end
242
+
243
+ it "should pass all the original tests included in the YUI compressor package" do
244
+ puts "Now running original YUI compressor test files:"
245
+
246
+ files = Dir.glob(File.join(File.dirname(__FILE__), 'tests', '*.css'))
247
+
248
+ for file in files do
249
+ print " -- testing #{file} ..."
250
+ Yuicssmin.compress(File.read(file)).chomp.strip.should eq(File.read(file + '.min').chomp.strip)
251
+ print "successful\n"
252
+ end
257
253
  end
258
254
 
259
255
  end