series.bar.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. describe('series.bar', function () {
  2. var uiHelper = window.uiHelper;
  3. var defaultOption = {
  4. xAxis: {
  5. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  6. },
  7. yAxis: {},
  8. series: {
  9. type: 'bar',
  10. data: [220, 182, 191, 234, 290, 330, 310]
  11. }
  12. };
  13. // get a clone of default option
  14. var getOption = function () {
  15. return JSON.parse(JSON.stringify(defaultOption));
  16. };
  17. var suites = [{
  18. name: 'bar color',
  19. cases: [{
  20. name: 'should display default bar color',
  21. test: 'equalOption',
  22. option1: {
  23. xAxis: {
  24. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  25. },
  26. yAxis: {},
  27. series: [{
  28. type: 'bar',
  29. data: [220, 182, 191, 234, 290, 330, 310]
  30. }, {
  31. type: 'bar',
  32. data: [220, 182, 191, 234, 290, 330, 310]
  33. }]
  34. },
  35. option2: {
  36. xAxis: {
  37. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  38. },
  39. yAxis: {},
  40. series: [{
  41. type: 'bar',
  42. data: [220, 182, 191, 234, 290, 330, 310],
  43. itemStyle: {
  44. normal: {
  45. color: '#c23531'
  46. }
  47. }
  48. }, {
  49. type: 'bar',
  50. data: [220, 182, 191, 234, 290, 330, 310],
  51. itemStyle: {
  52. normal: {
  53. color: '#2f4554'
  54. }
  55. }
  56. }]
  57. }
  58. }]
  59. }, {
  60. name: 'border color',
  61. cases: [{
  62. name: 'should have default border color',
  63. ignore: true,
  64. test: 'equalOption',
  65. option1: (function () {
  66. var option = getOption();
  67. option.series.itemStyle = {
  68. normal: {
  69. borderWidth: 1
  70. }
  71. }
  72. return option;
  73. })(),
  74. option2: (function () {
  75. var option = getOption();
  76. option.series.itemStyle = {
  77. normal: {
  78. borderColor: '#000',
  79. borderWidth: 1
  80. }
  81. }
  82. return option;
  83. })()
  84. }]
  85. }, {
  86. name: 'border width',
  87. cases: [{
  88. name: 'should have default width',
  89. test: 'equalOption',
  90. option1: getOption(),
  91. option2: (function () {
  92. var option = getOption();
  93. option.series.itemStyle = {
  94. normal: {
  95. borderWidth: 0
  96. }
  97. }
  98. return option;
  99. })()
  100. }, {
  101. name: 'can be set to other width',
  102. test: 'notEqualOption',
  103. option1: (function () {
  104. var option = getOption();
  105. option.series.itemStyle = {
  106. normal: {
  107. borderWidth: 10,
  108. borderColor: 'red'
  109. }
  110. }
  111. return option;
  112. })(),
  113. option2: getOption()
  114. }]
  115. }, {
  116. name: 'opacity',
  117. cases: [{
  118. name: 'can be set to other opacity',
  119. test: 'notEqualOption',
  120. option1: (function () {
  121. var option = getOption();
  122. option.series.itemStyle = {
  123. normal: {
  124. opacity: 0.8
  125. }
  126. }
  127. return option;
  128. })(),
  129. option2: getOption()
  130. }]
  131. }, {
  132. name: 'stack',
  133. cases: [{
  134. name: 'should stack properly',
  135. test: 'notEqualOption',
  136. option1: {
  137. xAxis: {
  138. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  139. },
  140. yAxis: {},
  141. series: [{
  142. type: 'bar',
  143. data: [220, 182, 191, 234, 290, 330, 310],
  144. stack: 'a'
  145. }, {
  146. type: 'bar',
  147. data: [220, 182, 191, 234, 290, 330, 310],
  148. stack: 'a'
  149. }]
  150. },
  151. option2: {
  152. xAxis: {
  153. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  154. },
  155. yAxis: {},
  156. series: [{
  157. type: 'bar',
  158. data: [220, 182, 191, 234, 290, 330, 310]
  159. }, {
  160. type: 'bar',
  161. data: [220, 182, 191, 234, 290, 330, 310]
  162. }]
  163. }
  164. }]
  165. }, {
  166. name: 'barMaxWidth',
  167. cases: [{
  168. name: 'should work for pixels',
  169. test: 'equalOption',
  170. option1: {
  171. xAxis: {
  172. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  173. },
  174. yAxis: {},
  175. series: [{
  176. type: 'bar',
  177. data: [220, 182, 191, 234, 290, 330, 310],
  178. barMaxWidth: 10
  179. }]
  180. },
  181. option2: {
  182. xAxis: {
  183. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  184. },
  185. yAxis: {},
  186. series: [{
  187. type: 'bar',
  188. data: [220, 182, 191, 234, 290, 330, 310],
  189. barWidth: 10
  190. }]
  191. }
  192. }, {
  193. name: 'should work for percentage',
  194. option: {
  195. xAxis: {
  196. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  197. },
  198. yAxis: {},
  199. series: [{
  200. type: 'bar',
  201. data: [220, 182, 191, 234, 290, 330, 310],
  202. barMaxWidth: '10%'
  203. }]
  204. }
  205. }, {
  206. name: 'should take effect when barWidth is larger than barMaxWidth',
  207. test: 'equalOption',
  208. option1: {
  209. xAxis: {
  210. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  211. },
  212. yAxis: {},
  213. series: [{
  214. type: 'bar',
  215. data: [220, 182, 191, 234, 290, 330, 310],
  216. barWidth: 15,
  217. barMaxWidth: 10
  218. }]
  219. },
  220. option2: {
  221. xAxis: {
  222. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  223. },
  224. yAxis: {},
  225. series: [{
  226. type: 'bar',
  227. data: [220, 182, 191, 234, 290, 330, 310],
  228. barMaxWidth: 10
  229. }]
  230. }
  231. }, {
  232. name: 'should not take effect when barWidth is less than '
  233. + 'barMaxWidth',
  234. test: 'notEqualOption',
  235. option1: {
  236. xAxis: {
  237. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  238. },
  239. yAxis: {},
  240. series: [{
  241. type: 'bar',
  242. data: [220, 182, 191, 234, 290, 330, 310],
  243. barWidth: 5,
  244. barMaxWidth: 10
  245. }]
  246. },
  247. option2: {
  248. xAxis: {
  249. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  250. },
  251. yAxis: {},
  252. series: [{
  253. type: 'bar',
  254. data: [220, 182, 191, 234, 290, 330, 310],
  255. barMaxWidth: 10
  256. }]
  257. }
  258. }, {
  259. name: 'should not take effect when barMaxWidth is larger than '
  260. + 'default',
  261. test: 'equalOption',
  262. option1: {
  263. xAxis: {
  264. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  265. },
  266. yAxis: {},
  267. series: [{
  268. type: 'bar',
  269. data: [220, 182, 191, 234, 290, 330, 310],
  270. barMaxWidth: 100
  271. }]
  272. },
  273. option2: {
  274. xAxis: {
  275. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  276. },
  277. yAxis: {},
  278. series: [{
  279. type: 'bar',
  280. data: [220, 182, 191, 234, 290, 330, 310]
  281. }]
  282. }
  283. }, {
  284. name: 'should work with stack',
  285. test: 'notEqualOption',
  286. option1: {
  287. xAxis: {
  288. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  289. },
  290. yAxis: {},
  291. series: [{
  292. type: 'bar',
  293. data: [220, 182, 191, 234, 290, 330, 310],
  294. barMaxWidth: 10,
  295. stack: 'a'
  296. }, {
  297. type: 'bar',
  298. data: [220, 182, 191, 234, 290, 330, 310],
  299. stack: 'a'
  300. }]
  301. },
  302. option2: {
  303. xAxis: {
  304. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  305. },
  306. yAxis: {},
  307. series: [{
  308. type: 'bar',
  309. data: [220, 182, 191, 234, 290, 330, 310],
  310. stack: 'a'
  311. }, {
  312. type: 'bar',
  313. data: [220, 182, 191, 234, 290, 330, 310],
  314. stack: 'a'
  315. }]
  316. }
  317. }, {
  318. name: 'should use the last value when stack',
  319. test: 'equalOption',
  320. option1: {
  321. xAxis: {
  322. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  323. },
  324. yAxis: {},
  325. series: [{
  326. type: 'bar',
  327. data: [220, 182, 191, 234, 290, 330, 310],
  328. barMaxWidth: 10,
  329. stack: 'a'
  330. }, {
  331. type: 'bar',
  332. data: [220, 182, 191, 234, 290, 330, 310],
  333. barMaxWidth: 20,
  334. stack: 'a'
  335. }]
  336. },
  337. option2: {
  338. xAxis: {
  339. data: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']
  340. },
  341. yAxis: {},
  342. series: [{
  343. type: 'bar',
  344. data: [220, 182, 191, 234, 290, 330, 310],
  345. barMaxWidth: 20,
  346. stack: 'a'
  347. }, {
  348. type: 'bar',
  349. data: [220, 182, 191, 234, 290, 330, 310],
  350. stack: 'a'
  351. }]
  352. }
  353. }]
  354. }];
  355. uiHelper.testOptionSpec('series.bar', suites, true);
  356. });