123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327 |
- /**
- * Created by JetBrains PhpStorm.
- * User: dongyancen
- * Date: 12-4-12
- * Time: 下午4:45
- * To change this template use File | Settings | File Templates.
- */
- module( 'ui.menu' );
- test( 'menu,submenu的显示', function() {
- //设置菜单内容\
- var editor = new te.obj[0].Editor();
- var items=[
- {
- label:'删除',
- cmdName:'delete'
- },
- {
- label:'全选',
- cmdName:'selectall'
- },
- {
- label:'删除代码',
- cmdName:'highlightcode',
- icon:'deletehighlightcode'
- },
- {
- label:'清空文档',
- cmdName:'cleardoc',
- exec:function () {
- if ( confirm( '确定清空文档吗?' ) ) {
- this.execCommand( 'cleardoc' );
- }
- }
- },
- '-',
- {
- label:'取消链接',
- cmdName:'unlink'
- },
- '-',
- {
- label:'段落格式',
- icon:'justifyjustify',
- subMenu:{
- items: [{
- label:'居左对齐',
- cmdName:'justify',
- value:'left',
- editor:editor
- },
- {
- label:'居右对齐',
- cmdName:'justify',
- value:'right',
- editor:editor
- },
- {
- label:'居中对齐',
- cmdName:'justify',
- value:'center',
- editor:editor
- },
- {
- label:'两端对齐',
- cmdName:'justify',
- value:'justify',
- editor:editor
- }],
- editor:editor
- }
- }
- ];
- var menu = new te.obj[0].Menu({className : 'edui-for-lineheight',items :items,editor:te.obj[0].Editor()});
- menu.render(te.dom[0]);
- menu.postRender();
- menu.show();
- var menuBody = document.getElementsByClassName("edui-menu-body")[0];
- equal(menuBody.childNodes[0].className,"edui-menuitem edui-"+editor.options.theme,'menu窗口显示');
- equal(menuBody.childNodes[0].firstChild.lastChild.innerHTML,"删除",'menu窗口显示');
- //edui-menuitem edui-menuseparator
- equal(menuBody.childNodes[4].className,"edui-menuitem edui-menuseparator edui-"+editor.options.theme,'menu窗口显示');
- equal(menuBody.childNodes[4].firstChild.className,"edui-menuseparator-inner edui-"+editor.options.theme,'menu窗口显示');//edui-menuitem edui-hassubmenu
- equal(menuBody.childNodes[7].className,"edui-menuitem edui-"+editor.options.theme + " edui-hassubmenu edui-hassubmenu",'第7个menu有子menu');
- //submenu
- var menuid1 = menu.items[7].id;
- var submenu1 = menu.items[7].subMenu.id;
- equal(document.getElementById(submenu1).style.display,'none','submenu初始的display值:"none"');
- if(ua.browser.ie){
- ua.mouseenter(menuBody.childNodes[7]);
- }
- else{
- ua.mouseover(menuBody.childNodes[7]); }
- setTimeout(function (){
- equal(document.getElementById(submenu1).style.display,'','显示submenu,检查submenu的display值:""');
- equal(getElementsByClassName_2(document.getElementById(submenu1),'div','edui-menu-body')[0].childNodes.length,4,'检查submenu的menuitems数量');
- equal(getElementsByClassName_2(document.getElementById(submenu1),'div','edui-menu-body')[0].firstChild.className,'edui-menuitem edui-'+editor.options.theme,'检查submenu的内容');
- equal(getElementsByClassName_2(document.getElementById(submenu1),'div','edui-menuitem')[0].firstChild.lastChild.innerHTML,'居左对齐','检查menuitem的内容');
- var menuClass = document.getElementById(menuid1).className;
- equal(menuClass,"edui-menuitem edui-"+editor.options.theme+" edui-hassubmenu edui-hassubmenu edui-state-hover edui-state-opened",'');
- if(ua.browser.ie){
- ua.mouseleave(document.getElementById(menuid1));
- }
- else{
- ua.mouseout(document.getElementById(menuid1));
- }
- setTimeout(function (){
- equal(document.getElementById(submenu1).style.display,'none','显示submenu,检查submenu的display值:""');
- menuClass = document.getElementById(menuid1).className;
- ok(menuClass.indexOf('edui-state-hover')==-1&&menuClass.indexOf('edui-state-opened')==-1,'');
- document.getElementById(submenu1).parentNode.removeChild(document.getElementById(submenu1));
- start();
- }, 450);
- }, 300);
- stop();
- function getElementsByClassName_2(oElm, strTagName, strClassName){
- var arrElements = (strTagName == "*" && oElm.all)? oElm.all :
- oElm.getElementsByTagName(strTagName);
- var arrReturnElements = new Array();
- strClassName = strClassName.replace(/\-/g, "\\-");
- var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
- var oElement;
- for(var i=0; i < arrElements.length; i++){
- oElement = arrElements[i];
- if(oRegExp.test(oElement.className)){
- arrReturnElements.push(oElement);
- }
- }
- return (arrReturnElements);
- }
- } );
- test( '先打开一个submenu,再打开另一个submenu', function() {
- var editor = new te.obj[0].Editor();
- //设置菜单内容
- var items=[
- {
- label:'删除',
- cmdName:'delete'
- },
- {
- label:'段落格式',
- icon:'justifyjustify',
- subMenu:{
- items: [{
- label:'居左对齐',
- cmdName:'justify',
- value:'left'
- },
- {
- label:'居右对齐',
- cmdName:'justify',
- value:'right'
- },
- {
- label:'居中对齐',
- cmdName:'justify',
- value:'center'
- },
- {
- label:'两端对齐',
- cmdName:'justify',
- value:'justify'
- }],
- editor:editor
- }
- },
- {
- label:'表格',
- subMenu:{
- items: [{
- label:'居左对齐',
- cmdName:'justify',
- value:'left'
- },
- {
- label:'居右对齐',
- cmdName:'justify',
- value:'right'
- }],
- editor:editor
- }
- }
- ];
- var menu = new te.obj[0].Menu({className : 'edui-for-lineheight',items :items,editor:editor});
- menu.render(te.dom[0]);
- menu.postRender();
- menu.show();
- var menuBody = document.getElementsByClassName("edui-menu-body")[0];
- //submenu
- var menuid1 = menu.items[1].id;
- var menuid2 = menu.items[2].id;
- var submenu1 = menu.items[1].subMenu.id;
- var submenu2 = menu.items[2].subMenu.id;
- equal(document.getElementById(submenu1).style.display,'none','submenu初始的display值:"none"');
- //打开一个submenu
- if(ua.browser.ie){
- ua.mouseenter(document.getElementById(menuid1));
- }
- else{
- ua.mouseover(document.getElementById(menuid1));
- }
- setTimeout(function (){
- //检查第一个submenu的内容显示
- equal(document.getElementById(submenu1).style.display,'','显示第一个submenu,检查submenu的display值:""');
- var menuClass = document.getElementById(menuid1).className;
- equal(menuClass,"edui-menuitem edui-"+editor.options.theme+" edui-hassubmenu edui-hassubmenu edui-state-hover edui-state-opened",'检查第一个submenu的打开状态');
- //打开第二个submenu
- if(ua.browser.ie){
- ua.mouseenter(document.getElementById(menuid2));
- }
- else{
- ua.mouseover(document.getElementById(menuid2));
- }
- setTimeout(function (){
- equal(document.getElementById(submenu1).style.display,'none','第一个submenu关闭,display值:"none"');
- menuClass = document.getElementById(menuid1).className;
- ok(menuClass.indexOf('edui-state-opened')==-1,'检查第一个submenu的关闭状态');
- equal(document.getElementById(submenu2).style.display,'','第二个submenu显示,检查submenu的display值:""');
- var menuClass = document.getElementById(menuid2).className;
- equal(menuClass,"edui-menuitem edui-"+editor.options.theme+" edui-hassubmenu edui-hassubmenu edui-state-hover edui-state-opened",'检查第二个submenu的打开状态');
- document.getElementById(submenu1).parentNode.removeChild(document.getElementById(submenu2));
- start();
- }, 450);
- }, 300);
- stop();
- } );
- test( 'dispose', function() {
- var editor = new te.obj[0].Editor();
- //设置菜单内容
- var items=[
- {
- label:'删除',
- cmdName:'delete'
- },
- {
- label:'全选',
- cmdName:'selectall'
- },
- {
- label:'删除代码',
- cmdName:'highlightcode',
- icon:'deletehighlightcode'
- },
- {
- label:'清空文档',
- cmdName:'cleardoc',
- exec:function () {
- if ( confirm( '确定清空文档吗?' ) ) {
- this.execCommand( 'cleardoc' );
- }
- }
- },
- '-',
- {
- label:'取消链接',
- cmdName:'unlink'
- },
- {
- label:'表格',
- subMenu:{
- items: [{
- label:'居左对齐',
- cmdName:'justify',
- value:'left'
- },
- {
- label:'居右对齐',
- cmdName:'justify',
- value:'right'
- }],
- editor:editor
- }
- }
- ];
- var menu = new te.obj[0].Menu({className : 'edui-for-lineheight',items :items,editor:editor});
- te.dom[0].innerHTML = menu.renderHtml();
- menu.postRender();
- menu.show();
- equal(menu.items.length,7,'检查menu里的items');
- equal(document.getElementById(menu.id).style.display,'','显示menu,检查menu的display值:""');
- menu.dispose();
- equal(menu.items.length,0,'dispose后,检查menu里的items');
- equal(document.getElementById(menu.id),null,'menu不在页面中');
- } );
- test( '_onClick', function() {
- var editor = new te.obj[0].Editor();
- //设置菜单内容
- var items=[
- {
- label:'取消链接',
- cmdName:'unlink'
- },
- {
- label:'表格',
- subMenu:{
- items: [{
- label:'居左对齐',
- cmdName:'justify',
- value:'left'
- },
- {
- label:'居右对齐',
- cmdName:'justify',
- value:'right'
- }],
- editor:editor
- }
- }
- ];
- var menu = new te.obj[0].Menu({className : 'edui-for-lineheight',items :items,editor:editor});
- menu.render(te.dom[0]);
- menu.postRender();
- menu.show();
- var menuid1 = menu.items[1].id;
- var submenu1 = menu.items[1].subMenu.id;
- equal(document.getElementById(submenu1).style.display,'none','submenu初始的display值:"none"');
- ua.click(document.getElementById(menuid1));
- setTimeout(function (){
- equal(document.getElementById(submenu1).style.display,'','显示submenu,检查submenu的display值:""');
- document.getElementById(submenu1).parentNode.removeChild(document.getElementById(submenu1));
- start();
- }, 300);
- stop();
- } );
|