Files
2025-08-27 17:10:05 +08:00

58 lines
1.5 KiB
CoffeeScript

vows = require 'vows'
assert = require 'assert'
phantom = require '../phantom'
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
describe "The phantom module (basic)",
"Can create an instance":
topic: t ->
phantom.create {port: 12302}, (ph, err) =>
@callback null, [ph, err]
"which is an object": ([ph, err]) ->
assert.isObject ph
"which did not error": ([ph, err]) ->
assert.isNull err
"with a version":
topic: t ([ph, err]) ->
ph.get 'version', (val) =>
@callback null, val
"defined": (ver) ->
assert.notEqual ver, undefined
"an object": (ver) ->
assert.isObject ver
"greater than or equal to 1.3": (ver) ->
assert.ok ver.major >= 1, "major version too low"
if (ver.major is 1)
assert.ok ver.minor >= 3, "minor version too low"
"which can inject Javascript from a file":
topic: t ([ph, err]) ->
ph.injectJs 'test/inject.js', (success) =>
@callback null, success
"and succeed": (success) ->
assert.ok success, "Injection should return true"
"which can create a page":
topic: t ([ph, err]) ->
ph.createPage (page) =>
@callback null, page
"which is an object": (page) ->
assert.isObject page