AbstractChart.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. topSuite("Ext.chart.AbstractChart.modern",
  2. [false, 'Ext.chart.*', 'Ext.data.ArrayStore'],
  3. function() {
  4. var chart;
  5. afterEach(function() {
  6. chart = Ext.destroy(chart);
  7. });
  8. describe('background', function () {
  9. var panel;
  10. beforeEach(function () {
  11. panel = Ext.create({
  12. xtype: 'panel',
  13. width: 400,
  14. height: 400,
  15. layout: 'fit',
  16. renderTo: document.body,
  17. style: 'background: red;'
  18. });
  19. });
  20. afterEach(function() {
  21. panel = Ext.destroy(panel);
  22. });
  23. it("should be white after layout end", function () {
  24. var layoutDone;
  25. runs(function () {
  26. chart = new Ext.chart.CartesianChart({
  27. engine: 'Ext.draw.engine.Canvas',
  28. store: {
  29. data: [
  30. {
  31. name: 'item-1',
  32. value: 1
  33. },
  34. {
  35. name: 'item-2',
  36. value: 3
  37. },
  38. {
  39. name: 'item-3',
  40. value: 2
  41. }
  42. ]
  43. },
  44. series: {
  45. type: 'line',
  46. xField: 'name',
  47. yField: 'value'
  48. },
  49. axes: [
  50. {
  51. type: 'category',
  52. position: 'bottom'
  53. },
  54. {
  55. type: 'numeric',
  56. position: 'left'
  57. }
  58. ],
  59. legend: {
  60. type: 'sprite'
  61. },
  62. listeners: {
  63. layout: function () {
  64. layoutDone = true;
  65. }
  66. }
  67. });
  68. panel.setItems([chart]);
  69. });
  70. waitsFor(function () {
  71. return layoutDone;
  72. });
  73. runs(function () {
  74. // Fetch the first pixel and check if it's white.
  75. // That should be enough
  76. var imageData = chart.getSurface('background').contexts[0].getImageData(0,0,1,1);
  77. var data = imageData.data;
  78. for (var i = 0; i < data.length; i++) {
  79. expect(data[i]).toBe(255);
  80. }
  81. });
  82. });
  83. });
  84. });