Skip to content

Commit 9f7b77f

Browse files
committed
Fixed the prototype adapter.
Closes enyo#12
1 parent ce54929 commit 9f7b77f

File tree

10 files changed

+53
-24
lines changed

10 files changed

+53
-24
lines changed

downloads/opentip-jquery-excanvas.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.

downloads/opentip-jquery.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.

downloads/opentip-native-excanvas.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.

downloads/opentip-native.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.

downloads/opentip-prototype-excanvas.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

downloads/opentip-prototype.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.

lib/adapter.prototype.js

Lines changed: 10 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/adapter.prototype.coffee

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,15 @@ do ->
3333

3434
# Wraps the element
3535
wrap: (element) ->
36+
if (element instanceof NodeList or element instanceof Array)
37+
throw new Error "Multiple elements provided." if element.length > 1
38+
element = @unwrap element
3639
$(element)
37-
throw new Error "Multiple elements provided." if element?.length? and element.length > 1
3840
element
3941

4042
# Returns the unwrapped element
4143
unwrap: (element) ->
42-
if element?.length? and element.length > 1
44+
if element instanceof NodeList or element instanceof Array
4345
element[0]
4446
else
4547
element
@@ -80,7 +82,7 @@ do ->
8082
@wrap(element).update if escape then content.escapeHTML() else content
8183

8284
# Appends given child to element
83-
append: (element, child) -> @wrap(element).insert child
85+
append: (element, child) -> @wrap(element).insert @wrap child
8486

8587
# Add a class
8688
addClass: (element, className) -> @wrap(element).addClassName className
@@ -114,10 +116,10 @@ do ->
114116
left: offset.left, top: offset.top
115117

116118
# Observe given eventName
117-
observe: (element, eventName, observer) -> @wrap(element).observe eventName, observer
119+
observe: (element, eventName, observer) -> Event.observe @wrap(element), eventName, observer
118120

119121
# Stop observing event
120-
stopObserving: (element, eventName, observer) -> @wrap(element).stopObserving eventName, observer
122+
stopObserving: (element, eventName, observer) -> Event.stopObserving @wrap(element), eventName, observer
121123

122124
# Perform an AJAX request and call the appropriate callbacks.
123125
ajax: (options) ->

test/assets/js/tests/200.adapters.coffee

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,19 @@ describe "Generic adapter", ->
262262
adapter.append adapter.wrap(element), adapter.wrap(child)
263263
expect(element.innerHTML).to.eql "<span></span>"
264264

265+
it "should properly append child to element when created with adapter", ->
266+
element = adapter.create "<div></div>"
267+
child = adapter.create "<span></span>"
268+
adapter.append element, child
269+
element = adapter.unwrap element
270+
child = adapter.unwrap child
271+
expect(element.innerHTML).to.eql "<span></span>"
272+
# Testing with wrapped as well
273+
element = document.createElement "div"
274+
child = document.createElement "span"
275+
adapter.append adapter.wrap(element), adapter.wrap(child)
276+
expect(element.innerHTML).to.eql "<span></span>"
277+
265278
describe "offset()", ->
266279
it "should only return left and top", ->
267280
element = $("""<div style="display:block; position: absolute; left: 100px; top: 200px;"></div>""")[0]
@@ -285,6 +298,9 @@ describe "Generic adapter", ->
285298
element = document.createElement "a"
286299
adapter.observe element, "click", -> done()
287300
Test.clickElement element
301+
it "should allow to attach an event to window", ->
302+
adapter.observe window, "resize", ->
303+
288304
it "should attach an event listener to wrapped", (done) ->
289305
element = document.createElement "a"
290306
adapter.observe adapter.wrap(element), "click", -> done()
@@ -302,6 +318,11 @@ describe "Generic adapter", ->
302318
Test.clickElement element
303319
expect(listener.callCount).to.equal 2 # Shouldn't have changed
304320

321+
it "should allow to remove event listener on window", ->
322+
listener = sinon.stub()
323+
adapter.observe window, "resize", listener
324+
adapter.stopObserving window, "resize", listener
325+
305326
it "should remove event listener from wrapped", ->
306327
element = document.createElement "a"
307328
listener = sinon.stub()

test/views/playground.jade

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,13 @@ head
2020
//- != js('src/adapter.ender')
2121
2222
23-
//- != js('lib/jquery-1.8.0')
24-
!= js('lib/prototype-1.7.1')
23+
!= js('lib/jquery-1.8.0')
24+
//- script
25+
//- jQuery.noConflict()
26+
//- != js('lib/prototype-1.7.1')
2527
!= js('src/opentip')
26-
!= js('src/adapter.prototype')
28+
//- != js('src/adapter.prototype')
29+
!= js('src/adapter.jquery')
2730

2831
//- != js('src/opentip')
2932
//- != js('src/adapter.native')
@@ -48,7 +51,7 @@ head
4851
4952
# window.x=$(".opentip-test2").opentip("Hallo test", { target: true, tipJoint: "right", borderWidth: 0 })
5053
51-
element = $(".opentip-test")[0]
54+
element = jQuery(".opentip-test")[0]
5255
5356
5457
window.x = new Opentip element, "Hallo test", { style: "test", tipJoint: "top" }
@@ -64,7 +67,7 @@ head
6467
6568
window.x = new Opentip element, "Hallo test", { style: "dark", hideDelay: 0.5, tipJoint: "left", stem: true, borderWidth: 2}
6669
67-
element = $(".opentip-test2")[0]
70+
element = jQuery(".opentip-test2")[0]
6871
window.x = new Opentip(element, "Hallo test", { style: "dark", stem: true, target: true, delay: 0, showEffect: false, hideDelay: 0, hideEffectDuration: 3 })
6972
7073
window.x = new Opentip(element, "Hallo test bla test bl<br />kjsdlfksjdlf", { style: "dark", hideTrigger: "closeButton", stem: true, tipJoint: "top right", target: true, delay: 0, hideDelay: 0, showOn: "creation", borderRadius: 15 })

0 commit comments

Comments
 (0)