PageRenderTime 52ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/tests/rules/box-model.js

https://gitlab.com/itesoft/css-lint
JavaScript | 225 lines | 183 code | 42 blank | 0 comment | 0 complexity | 248f3e56b725db4a4c962b2e487e225e MD5 | raw file
  1. (function() {
  2. "use strict";
  3. var Assert = YUITest.Assert;
  4. YUITest.TestRunner.add(new YUITest.TestCase({
  5. name: "Box Model Rule Errors",
  6. "Using width and padding should result in a warning": function() {
  7. var result = CSSLint.verify(".foo { width: 100px; padding: 10px; }", { "box-model": 1 });
  8. Assert.areEqual(1, result.messages.length);
  9. Assert.areEqual("warning", result.messages[0].type);
  10. Assert.areEqual("Using width with padding can sometimes make elements larger than you expect.", result.messages[0].message);
  11. },
  12. "Using width when padding is zero should not result in a warning": function() {
  13. var result = CSSLint.verify(".foo { width: 100px; padding: 0; }", { "box-model": 1 });
  14. Assert.areEqual(0, result.messages.length);
  15. },
  16. "Using width:auto with padding should not result in a warning": function() {
  17. var result = CSSLint.verify(".foo { width: auto; padding: 10px; }", { "box-model": 1 });
  18. Assert.areEqual(0, result.messages.length);
  19. },
  20. "Using width:available with padding should not result in a warning": function() {
  21. var result = CSSLint.verify(".foo { width: available; padding: 10px; }", { "box-model": 1 });
  22. Assert.areEqual(0, result.messages.length);
  23. },
  24. "Using height:auto with padding should not result in a warning": function() {
  25. var result = CSSLint.verify(".foo { height: auto; padding: 10px; }", { "box-model": 1 });
  26. Assert.areEqual(0, result.messages.length);
  27. },
  28. "Using width and padding-left should result in a warning": function() {
  29. var result = CSSLint.verify(".foo { width: 100px; padding-left: 10px; }", { "box-model": 1 });
  30. Assert.areEqual(1, result.messages.length);
  31. Assert.areEqual("warning", result.messages[0].type);
  32. Assert.areEqual("Using width with padding-left can sometimes make elements larger than you expect.", result.messages[0].message);
  33. },
  34. "Using width when padding-left is zero should not result in a warning": function() {
  35. var result = CSSLint.verify(".foo { width: 100px; padding-left: 0; }", { "box-model": 1 });
  36. Assert.areEqual(0, result.messages.length);
  37. },
  38. "Using width and padding-right should result in a warning": function() {
  39. var result = CSSLint.verify(".foo { width: 100px; padding-right: 10px; }", { "box-model": 1 });
  40. Assert.areEqual(1, result.messages.length);
  41. Assert.areEqual("warning", result.messages[0].type);
  42. Assert.areEqual("Using width with padding-right can sometimes make elements larger than you expect.", result.messages[0].message);
  43. },
  44. "Using width when padding-right is zero should not result in a warning": function() {
  45. var result = CSSLint.verify(".foo { width: 100px; padding-right: 0; }", { "box-model": 1 });
  46. Assert.areEqual(0, result.messages.length);
  47. },
  48. "Using width and padding-top should not result in a warning": function() {
  49. var result = CSSLint.verify(".foo { width: 100px; padding-top: 10px; }", { "box-model": 1 });
  50. Assert.areEqual(0, result.messages.length);
  51. },
  52. "Using width and padding-bottom should not result in a warning": function() {
  53. var result = CSSLint.verify(".foo { width: 100px; padding-bottom: 10px; }", { "box-model": 1 });
  54. Assert.areEqual(0, result.messages.length);
  55. },
  56. "Using width and padding-to-bottom should not result in a warning": function() {
  57. var result = CSSLint.verify(".foo { width: 100px; padding: 10px 0; }", { "box-model": 1 });
  58. Assert.areEqual(0, result.messages.length);
  59. },
  60. "Using width and border should result in a warning": function() {
  61. var result = CSSLint.verify(".foo { width: 100px; border: 10px; }", { "box-model": 1 });
  62. Assert.areEqual(1, result.messages.length);
  63. Assert.areEqual("warning", result.messages[0].type);
  64. Assert.areEqual("Using width with border can sometimes make elements larger than you expect.", result.messages[0].message);
  65. },
  66. "Using width and border with box-sizing should not result in a warning": function() {
  67. var result = CSSLint.verify(".foo { box-sizing: border-box; width: 100px; border: 10px; }", { "box-model": 1 });
  68. Assert.areEqual(0, result.messages.length);
  69. },
  70. "Using width and border-left should result in a warning": function() {
  71. var result = CSSLint.verify(".foo { width: 100px; border-left: 10px; }", { "box-model": 1 });
  72. Assert.areEqual(1, result.messages.length);
  73. Assert.areEqual("warning", result.messages[0].type);
  74. Assert.areEqual("Using width with border-left can sometimes make elements larger than you expect.", result.messages[0].message);
  75. },
  76. "Using width when border-left is zero should not result in a warning": function() {
  77. var result = CSSLint.verify(".foo { width: 100px; border-left: 0; }", { "box-model": 1 });
  78. Assert.areEqual(0, result.messages.length);
  79. },
  80. "Using width and border-right should result in a warning": function() {
  81. var result = CSSLint.verify(".foo { width: 100px; border-right: 10px; }", { "box-model": 1 });
  82. Assert.areEqual(1, result.messages.length);
  83. Assert.areEqual("warning", result.messages[0].type);
  84. Assert.areEqual("Using width with border-right can sometimes make elements larger than you expect.", result.messages[0].message);
  85. },
  86. "Using width when border-right is zero should not result in a warning": function() {
  87. var result = CSSLint.verify(".foo { width: 100px; border-right: 0; }", { "box-model": 1 });
  88. Assert.areEqual(0, result.messages.length);
  89. },
  90. "Using width and border-top should not result in a warning": function() {
  91. var result = CSSLint.verify(".foo { width: 100px; border-top: 10px; }", { "box-model": 1 });
  92. Assert.areEqual(0, result.messages.length);
  93. },
  94. "Using width and border-bottom should not result in a warning": function() {
  95. var result = CSSLint.verify(".foo { width: 100px; border-bottom: 10px; }", { "box-model": 1 });
  96. Assert.areEqual(0, result.messages.length);
  97. },
  98. "Using height and padding should result in a warning": function() {
  99. var result = CSSLint.verify(".foo { height: 100px; padding: 10px; }", { "box-model": 1 });
  100. Assert.areEqual(1, result.messages.length);
  101. Assert.areEqual("warning", result.messages[0].type);
  102. Assert.areEqual("Using height with padding can sometimes make elements larger than you expect.", result.messages[0].message);
  103. },
  104. "Using height when padding is zero should not result in a warning": function() {
  105. var result = CSSLint.verify(".foo { height: 100px; padding: 0; }", { "box-model": 1 });
  106. Assert.areEqual(0, result.messages.length);
  107. },
  108. "Using height and padding-left should not result in a warning": function() {
  109. var result = CSSLint.verify(".foo { height: 100px; padding-left: 10px; }", { "box-model": 1 });
  110. Assert.areEqual(0, result.messages.length);
  111. },
  112. "Using height and padding-right should not result in a warning": function() {
  113. var result = CSSLint.verify(".foo { height: 100px; padding-right: 10px; }", { "box-model": 1 });
  114. Assert.areEqual(0, result.messages.length);
  115. },
  116. "Using height and padding-left-right should not result in a warning": function() {
  117. var result = CSSLint.verify(".foo { height: 100px; padding: 0 10px; }", { "box-model": 1 });
  118. Assert.areEqual(0, result.messages.length);
  119. },
  120. "Using height and padding-top should result in a warning": function() {
  121. var result = CSSLint.verify(".foo { height: 100px; padding-top: 10px; }", { "box-model": 1 });
  122. Assert.areEqual(1, result.messages.length);
  123. Assert.areEqual("warning", result.messages[0].type);
  124. Assert.areEqual("Using height with padding-top can sometimes make elements larger than you expect.", result.messages[0].message);
  125. },
  126. "Using height when padding-top is zero should not result in a warning": function() {
  127. var result = CSSLint.verify(".foo { height: 100px; padding-top: 0; }", { "box-model": 1 });
  128. Assert.areEqual(0, result.messages.length);
  129. },
  130. "Using height and padding-bottom should result in a warning": function() {
  131. var result = CSSLint.verify(".foo { height: 100px; padding-bottom: 10px; }", { "box-model": 1 });
  132. Assert.areEqual(1, result.messages.length);
  133. Assert.areEqual("warning", result.messages[0].type);
  134. Assert.areEqual("Using height with padding-bottom can sometimes make elements larger than you expect.", result.messages[0].message);
  135. },
  136. "Using height when padding-bottom is zero should not result in a warning": function() {
  137. var result = CSSLint.verify(".foo { height: 100px; padding-bottom: 0; }", { "box-model": 1 });
  138. Assert.areEqual(0, result.messages.length);
  139. },
  140. "Using height and border should result in a warning": function() {
  141. var result = CSSLint.verify(".foo { height: 100px; border: 10px; }", { "box-model": 1 });
  142. Assert.areEqual(1, result.messages.length);
  143. Assert.areEqual("warning", result.messages[0].type);
  144. Assert.areEqual("Using height with border can sometimes make elements larger than you expect.", result.messages[0].message);
  145. },
  146. "Using height and border: none should not result in a warning": function() {
  147. var result = CSSLint.verify(".foo { height: 100px; border: none; }", { "box-model": 1 });
  148. Assert.areEqual(0, result.messages.length);
  149. },
  150. "Using height and border: 0 should not result in a warning": function() {
  151. var result = CSSLint.verify(".foo { height: 100px; border: 0; }", { "box-model": 1 });
  152. Assert.areEqual(0, result.messages.length);
  153. },
  154. "Using height and border-left should not result in a warning": function() {
  155. var result = CSSLint.verify(".foo { height: 100px; border-left: 10px; }", { "box-model": 1 });
  156. Assert.areEqual(0, result.messages.length);
  157. },
  158. "Using height and border-right should not result in a warning": function() {
  159. var result = CSSLint.verify(".foo { height: 100px; border-right: 10px; }", { "box-model": 1 });
  160. Assert.areEqual(0, result.messages.length);
  161. },
  162. "Using height and border-top should result in a warning": function() {
  163. var result = CSSLint.verify(".foo { height: 100px; border-top: 10px; }", { "box-model": 1 });
  164. Assert.areEqual(1, result.messages.length);
  165. Assert.areEqual("warning", result.messages[0].type);
  166. Assert.areEqual("Using height with border-top can sometimes make elements larger than you expect.", result.messages[0].message);
  167. },
  168. "Using height when border-top is zero should not result in a warning": function() {
  169. var result = CSSLint.verify(".foo { height: 100px; border-top: 0; }", { "box-model": 1 });
  170. Assert.areEqual(0, result.messages.length);
  171. },
  172. "Using height and border-bottom should result in a warning": function() {
  173. var result = CSSLint.verify(".foo { height: 100px; border-bottom: 10px; }", { "box-model": 1 });
  174. Assert.areEqual(1, result.messages.length);
  175. Assert.areEqual("warning", result.messages[0].type);
  176. Assert.areEqual("Using height with border-bottom can sometimes make elements larger than you expect.", result.messages[0].message);
  177. },
  178. "Using height when border-bottom is zero should not result in a warning": function() {
  179. var result = CSSLint.verify(".foo { height: 100px; border-bottom: 0; }", { "box-model": 1 });
  180. Assert.areEqual(0, result.messages.length);
  181. }
  182. }));
  183. })();