charts.js 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. module( 'plugins.charts' );
  2. test( '图表命令检测', function() {
  3. expect(3);
  4. var container = te.obj[0].container,
  5. editor = null,
  6. count = 0;
  7. UE.delEditor( te.obj[0] );
  8. container.parentNode.removeChild( container );
  9. container = document.createElement( "div" );
  10. container.id = "container";
  11. document.body.appendChild( container );
  12. editor = UE.getEditor( "container", {
  13. initialContent: '<table><tbody><tr><td width="147" valign="top">' +
  14. '<br></td><td width="147" valign="top"><br></td>' +
  15. '<td width="147" valign="top"><br></td><td width="147" valign="top">' +
  16. '<br></td><td width="147" valign="top"><br></td></tr></tbody></table>'
  17. } );
  18. stop();
  19. editor.ready( function () {
  20. var firstTd = editor.body.getElementsByTagName("td")[0];
  21. var range = new baidu.editor.dom.Range(editor.document);
  22. range.selectNode( firstTd).collapse(true).select();
  23. equal( editor.queryCommandState( 'charts' ), -1, '数据验证失败, 状态为禁用' );
  24. //设置数据格式合法的表格
  25. editor.setContent('<table width="992"><tbody><tr class="firstRow"><th valign="null" width="141"><br></th><th width="141">a</th><th width="141">b</th><th width="142">c</th><th width="142">d</th><th width="142">e</th><th width="142">f</th></tr><tr><th valign="null" width="141">1999</th><td valign="top" width="141">1</td><td valign="top" width="141">2</td><td valign="top" width="142">3</td><td valign="top" width="142">4</td><td valign="top" width="142">5</td><td valign="top" width="142">6</td></tr></tbody></table>');
  26. firstTd = editor.body.getElementsByTagName("td")[0];
  27. range.setStart( firstTd,0).collapse(true).select();
  28. equal( editor.queryCommandState( 'charts' ) != -1, true, '数据合法, 状态可用' );
  29. editor.execCommand( 'charts', {
  30. title: '测试标题',
  31. subTitle: '标题2',
  32. xTitle: 'X轴标题',
  33. yTitle: 'Y轴标题',
  34. suffix: '后缀',
  35. tip: '提示',
  36. dataFormat: '1',
  37. chartType: 1
  38. } );
  39. var tableNode = editor.body.getElementsByTagName("table")[0];
  40. equal( tableNode.getAttribute("data-chart") !== null, true, '插入图表命令执行成功' );
  41. setTimeout(function(){
  42. UE.delEditor("container");
  43. document.getElementById("container")&&te.dom.push( document.getElementById("container"));
  44. start();
  45. },300);
  46. } );
  47. } );
  48. test( '图表命令检测', function() {
  49. // expect(5);
  50. UE.delEditor( te.obj[0] );
  51. var div = document.createElement( "div" );
  52. div.id = "container";
  53. document.body.appendChild( div );
  54. var editor = UE.getEditor( "container", {
  55. initialContent: '<table><tbody><tr><td width="147" valign="top">' +
  56. '<br></td></tr><tr><td width="147" valign="top"><br></td></tr></tbody></table>'
  57. } );
  58. stop();
  59. editor.ready( function () {
  60. var range = editor.selection.getRange();
  61. range.selectNode( editor.body.getElementsByTagName("td")[0]).collapse(true).select();
  62. equal( editor.queryCommandState( 'charts' ), -1, '列数不够, 状态为禁用' );
  63. // <table><tbody><tr class="firstRow"><th></th><th></th></tr><tr><td width="483" valign="top" style="word-break: break-all;">1</td><td width="483" valign="top" style="word-break: break-all;">2</td></tr><tr><td width="483" valign="top" style="word-break: break-all;">2</td><td width="483" valign="top" style="word-break: break-all;">2</td></tr></tbody></table>
  64. editor.setContent('<table><tbody><tr class="firstRow"><th></th><td>e</td></tr><tr><td width="483" valign="top" style="word-break: break-all;">1</td><td width="483" valign="top" style="word-break: break-all;">2</td></tr><tr><td width="483" valign="top" style="word-break: break-all;">2</td><td width="483" valign="top" style="word-break: break-all;">2</td></tr></tbody></table>');
  65. range.selectNode( editor.body.getElementsByTagName("td")[0]).collapse(true).select();
  66. equal( editor.queryCommandState( 'charts' ), -1, '第一行不都是th, 状态为禁用' );
  67. editor.setContent('<table><tbody><tr class="firstRow"><th></th><th>e</th></tr><tr><td width="483" valign="top" style="word-break: break-all;">1</td><td width="483" valign="top" style="word-break: break-all;">2</td></tr><tr><td width="483" valign="top" style="word-break: break-all;">2</td><td width="483" valign="top" style="word-break: break-all;">2</td></tr></tbody></table>');
  68. range.selectNode( editor.body.getElementsByTagName("td")[0]).collapse(true).select();
  69. equal( editor.queryCommandState( 'charts' ), -1, '第一列不是th, 状态为禁用' );
  70. editor.setContent('<table width="992" ><tbody><tr class="firstRow"><th width="364"></th><th width="364"></th><th width="364"></th></tr><tr><th valign="null" width="263">5</th><td valign="top" style="word-break: break-all;" width="364" rowspan="2" colspan="1">5</td><td valign="top" style="word-break: break-all;" width="364">2</td></tr><tr><th valign="null" width="263"></th><td valign="top" style="word-break: break-all;" width="364">2</td></tr> <tr><th></th><td valign="top" colspan="1" rowspan="1">2</td><td valign="top" colspan="1" rowspan="1">4</td></tr></tbody></table>');
  71. range.selectNode( editor.body.getElementsByTagName("td")[0]).collapse(true).select();
  72. equal( editor.queryCommandState( 'charts' ), -1, '每行单元格数不匹配, 状态为禁用' );
  73. editor.setContent('<table width="992"><tbody><tr class="firstRow"><th valign="null" width="263"></th><th width="364"></th><th width="364"></th></tr><tr><th valign="null" width="263"></th><td valign="top" style="word-break: break-all;" width="364" class="selectTdClass">1</td><td valign="top" style="word-break: break-all;" width="364">ee</td></tr><tr><th valign="null" width="263"></th><td valign="top" style="word-break: break-all;" width="364" class="selectTdClass">2</td><td valign="top" style="word-break: break-all;" width="364">2</td></tr></tbody></table>');
  74. range.selectNode( editor.body.getElementsByTagName("td")[0]).collapse(true).select();
  75. equal( editor.queryCommandState( 'charts' ), -1, '内容不是数字, 状态为禁用' );
  76. setTimeout(function(){
  77. UE.delEditor("container");
  78. document.getElementById("container")&&te.dom.push( document.getElementById("container"));
  79. start();
  80. },300);
  81. } );
  82. } );