08-27-周三_17-09-29
This commit is contained in:
78
node_modules/phantom/test/callbacks.coffee
generated
vendored
Normal file
78
node_modules/phantom/test/callbacks.coffee
generated
vendored
Normal file
@@ -0,0 +1,78 @@
|
||||
vows = require 'vows'
|
||||
assert = require 'assert'
|
||||
phantom = require '../phantom'
|
||||
Promise = require 'bluebird'
|
||||
|
||||
describe = (name, bat) -> vows.describe(name).addBatch(bat).export(module)
|
||||
|
||||
# Make coffeescript not return anything
|
||||
# This is needed because vows topics do different things if you have a return
|
||||
# value
|
||||
t = (fn) ->
|
||||
->
|
||||
fn.apply this, arguments
|
||||
return
|
||||
|
||||
# Inject an `onExit` callback on `create` to resolve this promise.
|
||||
exitPromise = new Promise (resolve) ->
|
||||
wrapCreate = (p) ->
|
||||
_cached = p.create
|
||||
wrapped = false
|
||||
|
||||
p.create = (args...) ->
|
||||
for arg, idx in args when typeof arg is 'object'
|
||||
args[idx]['onExit'] = resolve
|
||||
wrapped = true
|
||||
break
|
||||
|
||||
args.push {onExit: resolve} unless wrapped is true
|
||||
_cached.apply phantom, args
|
||||
|
||||
wrapCreate phantom
|
||||
|
||||
describe "The phantom module (callbacks)",
|
||||
"Can create an instance":
|
||||
topic: t ->
|
||||
phantom.create {port: 12305}, (ph) =>
|
||||
@callback null, ph
|
||||
|
||||
"and can add cookies":
|
||||
topic: t (ph) ->
|
||||
ph.addCookie
|
||||
name: "cookieName"
|
||||
value: "cookieValue"
|
||||
path: "/testPath"
|
||||
domain: "localhost", (status) =>
|
||||
@callback null, status
|
||||
|
||||
"which succeeds": (status) ->
|
||||
assert.ok status, "addCookie should succeed"
|
||||
|
||||
"and, when getCookies is called,":
|
||||
topic: t (ph) ->
|
||||
ph.getCookies (cookies) =>
|
||||
@callback null, cookies
|
||||
|
||||
"the cookie is available": (cookies) ->
|
||||
assert.equal (c for c in cookies when (c) ->
|
||||
c.name is "cookieName" and
|
||||
c.value is "cookieValue" and
|
||||
c.path is "/testPath").length, 1, "cookie must be in phantom.cookies"
|
||||
|
||||
|
||||
"which, when you call exit()":
|
||||
topic: t (ph) ->
|
||||
countdown = null
|
||||
|
||||
exitPromise.then =>
|
||||
clearTimeout countdown
|
||||
@callback null, 'success'
|
||||
|
||||
ph.exit()
|
||||
|
||||
countdown = setTimeout =>
|
||||
@callback 'timeout'
|
||||
, 500
|
||||
|
||||
"runs the onExit callback within 500ms": (status) ->
|
||||
assert.equal status, 'success'
|
Reference in New Issue
Block a user