Skip to content

Commit 668c548

Browse files
committed
More tests and cleanup
1 parent 669f343 commit 668c548

File tree

3 files changed

+32
-64
lines changed

3 files changed

+32
-64
lines changed

jquery.ui-contextmenu.js

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,11 @@
3434
create: $.noop, // menu was initialized
3535
createMenu: $.noop, // menu was initialized (original UI Menu)
3636
focus: $.noop, // menu option got focus
37-
// init: $.noop, // ui-contextmenu was initialized
3837
open: $.noop, // menu was opened
3938
select: $.noop // menu option was selected; return `false` to prevent closing
4039
},
4140
/** Constructor */
4241
_create: function () {
43-
// console.log("_create()");
4442
var eventNames, targetId,
4543
opts = this.options;
4644

@@ -77,12 +75,10 @@
7775
if(opts.taphold){
7876
eventNames += " taphold" + this.eventNamespace;
7977
}
80-
// console.log("_create() - element.delegate('" + this.eventNamespace + "')");
8178
this.element.delegate(opts.delegate, eventNames, $.proxy(this._openMenu, this));
8279
},
8380
/** Destructor, called on $().contextmenu("destroy"). */
8481
_destroy: function(){
85-
// console.log("_destroy() element.undelegate('" + this.eventNamespace + "'), menu=", this.$menu);
8682
this.element.undelegate(this.eventNamespace);
8783

8884
this._createUiMenu(null);
@@ -95,18 +91,14 @@
9591
/** (Re)Create jQuery UI Menu. */
9692
_createUiMenu: function(menuDef){
9793
// Remove temporary <ul> if any
98-
// console.log("_createUiMenu("+ menuDef + ")");
99-
10094
if(this.isOpen()){
10195
// close without animation, to force async mode
10296
this._closeMenu(true);
10397
}
10498

10599
if(this.menuIsTemp){
106-
// console.log("_createUiMenu - remove $menu", this.$menu);
107100
this.$menu.remove(); // this will also destroy ui.menu
108101
} else if(this.$menu){
109-
// console.log("_createUiMenu - destroy $menu", this.$menu);
110102
this.$menu.menu("destroy").hide();
111103
}
112104
this.$menu = null;
@@ -124,7 +116,6 @@
124116
this.$menu = menuDef;
125117
}
126118
// Create - but hide - the jQuery UI Menu widget
127-
// console.log("_createUiMenu - create $menu", this.$menu);
128119
this.$menu
129120
.hide()
130121
// .addClass("moogle-contextmenu")
@@ -149,7 +140,6 @@
149140
},
150141
/** Open popup (called on 'contextmenu' event). */
151142
_openMenu: function(event){
152-
// console.log("_openMenu()");
153143
var opts = this.options,
154144
posOption = opts.position,
155145
self = this,
@@ -164,7 +154,6 @@
164154
}
165155
ui.menu = this.$menu; // Might have changed in beforeOpen
166156
// Register global event handlers that close the dropdown-menu
167-
// console.log("_openMenu() - document.bind('" + this.eventNamespace + "')", this.menuIsTemp, this.$menu);
168157
$(document).bind("keydown" + this.eventNamespace, function(event){
169158
if( event.which === $.ui.keyCode.ESCAPE ){
170159
self._closeMenu();
@@ -200,15 +189,14 @@
200189

201190
this._show(this.$menu, this.options.show, function(){
202191
self._trigger.call(self, "open", event, ui);
203-
// console.log("_openMenu() - done");
204192
});
205193
},
206194
/** Close popup. */
207195
_closeMenu: function(immediately){
208196
var self = this,
209197
hideOpts = immediately ? false : this.options.hide;
210198

211-
// console.log("_closeMenu() - document.unbind('" + this.eventNamespace + "')", this.menuIsTemp, this.$menu);
199+
// Note: we don't want to unbind the 'contextmenu' event
212200
$(document)
213201
.unbind("mousedown" + this.eventNamespace)
214202
.unbind("touchstart" + this.eventNamespace)
@@ -217,7 +205,6 @@
217205
this._hide(this.$menu, hideOpts, function() {
218206
self._trigger("close");
219207
self.currentTarget = null;
220-
// console.log("_closeMenu() - done");
221208
});
222209
},
223210
/** Handle $().contextmenu("option", key, value) calls. */

jquery.ui-contextmenu.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/tests.js

Lines changed: 30 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -45,51 +45,10 @@ function TestHelpers() {
4545
};
4646
}
4747

48-
/** Create a profile wrapper */
49-
/*
50-
function profile(fn, flag, opts){
51-
if( flag === false ){
52-
return fn;
53-
}
54-
var start, elap,
55-
count = 0,
56-
level = 0,
57-
maxLevel = 0,
58-
name = fn.name,
59-
min = Math.pow(2, 32) - 1,
60-
max = 0,
61-
sum = 0,
62-
printTime = opts.printTime !== false,
63-
wrapper = function(){
64-
count += 1;
65-
level += 1;
66-
if(printTime && level === 1){
67-
console.time(name);
68-
}
69-
70-
start = new Date().getTime();
71-
fn.apply(this, arguments);
72-
elap = new Date().getTime() - start;
73-
74-
min = Math.min(min, elap);
75-
max = Math.max(max, elap);
76-
maxLevel = Math.max(maxLevel, elap);
77-
sum += elap;
78-
if(printTime && level === 1){
79-
console.timeEnd(name);
80-
}
81-
level -= 1;
82-
};
83-
wrapper.stats = function(){
84-
return "count";
85-
};
86-
return wrapper;
87-
}
88-
*/
89-
9048

9149
// ****************************************************************************
9250

51+
9352
jQuery(document).ready(function(){
9453

9554
/*******************************************************************************
@@ -100,8 +59,10 @@ QUnit.log(function(data) {
10059
// window.console.log(data.result + " :: " + data.message);
10160
}
10261
});
62+
10363
QUnit.config.requireExpects = true;
10464

65+
10566
var th = new TestHelpers(),
10667
log = th.log,
10768
logOutput = th.logOutput,
@@ -182,6 +143,7 @@ function _createTest(menu){
182143
"Event sequence OK." );
183144
}
184145

146+
185147
test("create from UL", function(){
186148
_createTest("ul#sampleMenu");
187149
});
@@ -199,7 +161,7 @@ module("open", lifecycle);
199161
function _openTest(menu){
200162
var $ctx, $popup;
201163

202-
expect(11);
164+
expect(18);
203165

204166
$("#container").contextmenu({
205167
delegate: ".hasmenu",
@@ -211,22 +173,38 @@ function _openTest(menu){
211173
"beforeOpen: Got contextmenubeforeopen event" );
212174
equal( ui.target.text(), "AAA",
213175
"beforeOpen: ui.target is set" );
214-
ok( $popup.is(":hidden"), "beforeOpen: Menu is hidden" );
176+
ok( $popup.is(":hidden"),
177+
"beforeOpen: Menu is hidden" );
215178
ok( ! entry($popup, 0).hasClass("ui-state-disabled"),
216179
"beforeOpen: Entry 0 is enabled" );
217180
ok( entry($popup, 2).hasClass("ui-state-disabled"),
218181
"beforeOpen: Entry 2 is disabled" );
219182

220-
$("#container").contextmenu("enableEntry", "cut", false);
183+
ok($ctx.contextmenu("isOpen"), "isOpen() false in beforeOpen event");
221184

222-
ok( entry($popup, 0).hasClass("ui-state-disabled"),
223-
"beforeOpen: Entry 0 is disabled" );
185+
$("#container").contextmenu("enableEntry", "cut", false);
186+
$("#container").contextmenu("showEntry", "copy", false);
224187
},
225188
open: function(event){
226189
log("open");
227190

228-
ok( $popup.is(":visible"), "open: Menu is visible" );
229-
ok( entry($popup, 2).hasClass("ui-state-disabled"), "open: Entry is disabled" );
191+
ok( $popup.is(":visible"),
192+
"open: Menu is visible" );
193+
ok( entry($popup, 2).hasClass("ui-state-disabled"),
194+
"open: Entry is disabled" );
195+
196+
ok( $ctx.contextmenu("isOpen"),
197+
"isOpen() true in open event");
198+
199+
ok( entry($popup, 0).is(":visible"),
200+
"beforeOpen: Entry 0 is visible" );
201+
ok( entry($popup, 0).hasClass("ui-state-disabled"),
202+
"beforeOpen: Entry 0 is disabled: enableEntry(false) worked" );
203+
204+
ok( entry($popup, 1).is(":hidden"),
205+
"beforeOpen: Entry 1 is hidden: showEntry(false) worked" );
206+
ok( !entry($popup, 1).hasClass("ui-state-disabled"),
207+
"beforeOpen: Entry 1 is enabled" );
230208

231209
equal(logOutput(), "open(),beforeOpen,after open(),open",
232210
"Event sequence OK.");
@@ -237,6 +215,9 @@ function _openTest(menu){
237215
$ctx = $(":moogle-contextmenu");
238216
$popup = $ctx.contextmenu("getMenu");
239217

218+
ok($popup, "getMenu() works");
219+
ok(!$ctx.contextmenu("isOpen"), "menu initially closed");
220+
240221
equal( $ctx.length, 1, "widget created");
241222
ok($popup.is(":hidden"), "Menu is hidden");
242223
log("open()");

0 commit comments

Comments
 (0)