aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/menu/methods.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/menu/methods.js')
-rw-r--r--tests/unit/menu/methods.js116
1 files changed, 116 insertions, 0 deletions
diff --git a/tests/unit/menu/methods.js b/tests/unit/menu/methods.js
new file mode 100644
index 000000000..e322ab214
--- /dev/null
+++ b/tests/unit/menu/methods.js
@@ -0,0 +1,116 @@
+define( [
+ "jquery",
+ "./helper",
+ "ui/menu"
+], function( $, testHelper ) {
+
+var log = testHelper.log,
+ logOutput = testHelper.logOutput,
+ click = testHelper.click;
+
+module( "menu: methods", {
+ setup: function() {
+ testHelper.clearLog();
+ }
+});
+
+test( "destroy", function( assert ) {
+ expect( 2 );
+ assert.domEqual( "#menu2", function() {
+ $( "#menu2" ).menu().menu( "destroy" );
+ });
+ assert.domEqual( "#menu5", function() {
+ $( "#menu5").menu().menu( "destroy" );
+ });
+});
+
+test( "enable/disable", function( assert ) {
+ expect( 3 );
+ var element = $( "#menu1" ).menu({
+ select: function() {
+ log();
+ }
+ });
+ element.menu( "disable" );
+ assert.hasClasses( element, "ui-state-disabled" );
+ log( "click", true );
+ click( element, "1" );
+ log( "afterclick" );
+ element.menu( "enable" );
+ assert.lacksClasses( element, "ui-state-disabled" );
+ log( "click" );
+ click( element, "1" );
+ log( "afterclick" );
+ equal( logOutput(), "click,afterclick,click,1,afterclick", "Click order not valid." );
+});
+
+test( "refresh", function() {
+ expect( 5 );
+ var element = $( "#menu1" ).menu();
+ equal( element.find( ".ui-menu-item" ).length, 5, "Incorrect number of menu items" );
+ element.append( "<li><a href='#'>test item</a></li>" ).menu( "refresh" );
+ equal( element.find( ".ui-menu-item" ).length, 6, "Incorrect number of menu items" );
+ element.find( ".ui-menu-item:last" ).remove().end().menu( "refresh" );
+ equal( element.find( ".ui-menu-item" ).length, 5, "Incorrect number of menu items" );
+ element.append( "<li>---</li>" ).menu( "refresh" );
+ equal( element.find( ".ui-menu-item" ).length, 5, "Incorrect number of menu items" );
+ element.children( ":last" ).remove().end().menu( "refresh" );
+ equal( element.find( ".ui-menu-item" ).length, 5, "Incorrect number of menu items" );
+});
+
+test( "refresh submenu", function() {
+ expect( 2 );
+ var element = $( "#menu2" ).menu();
+ equal( element.find( "ul:first .ui-menu-item" ).length, 3 );
+ element.find( "ul" ).addBack().append( "<li><a href=\"#\">New Item</a></li>" );
+ element.menu( "refresh" );
+ equal( element.find( "ul:first .ui-menu-item" ).length, 4 );
+});
+
+test( "refresh icons (see #9377)", function( assert ) {
+ expect( 3 );
+ var element = $( "#menu1" ).menu();
+ assert.lacksClasses( element, "ui-menu-icons" );
+ element.find( "li:first .ui-menu-item-wrapper" )
+ .html( "<span class='ui-icon ui-icon-disk'></span>Save</a>" );
+ element.menu( "refresh" );
+
+ assert.hasClasses( element, "ui-menu-icons" );
+ element.find( "li:first .ui-menu-item-wrapper" ).html( "Save" );
+ element.menu( "refresh" );
+ assert.lacksClasses( element, "ui-menu-icons" );
+});
+
+test( "widget", function() {
+ expect( 2 );
+ var element = $( "#menu1" ).menu(),
+ widgetElement = element.menu( "widget" );
+ equal( widgetElement.length, 1, "one element" );
+ strictEqual( widgetElement[ 0 ], element[ 0 ], "same element" );
+});
+
+// TODO: test focus method
+
+// TODO: test blur method
+
+// TODO: test collapseAll method
+
+// TODO: test collapse method
+
+// TODO: test expand method
+
+// TODO: test next method
+
+// TODO: test prev method
+
+// TODO: test isFirstItem method
+
+// TODO: test isLastItem method
+
+// TODO: test nextPage method
+
+// TODO: test prevPage method
+
+// TODO: test select method
+
+} );