2015-02-10 05:26:56 +00:00
|
|
|
describe "SiteValidator", ->
|
|
|
|
|
|
2015-02-15 07:50:04 +00:00
|
|
|
$('<link/>',
|
|
|
|
|
rel: 'stylesheet'
|
|
|
|
|
type: 'text/css'
|
|
|
|
|
href: '/assets/client/site_validator.css').appendTo 'head'
|
2015-02-10 05:26:56 +00:00
|
|
|
fixture.preload("siteValidator.html")
|
2015-02-04 06:22:11 +00:00
|
|
|
|
|
|
|
|
beforeEach ->
|
2015-02-15 12:27:48 +00:00
|
|
|
@server = sinon.fakeServer.create();
|
2015-02-04 06:22:11 +00:00
|
|
|
window.jamClient = sinon.stub()
|
2015-02-10 05:26:56 +00:00
|
|
|
@fixtures = fixture.load("siteValidator.html", true)
|
2015-02-04 06:22:11 +00:00
|
|
|
window.gon = {}
|
|
|
|
|
window.gon.isNativeClient = true
|
|
|
|
|
|
|
|
|
|
afterEach ->
|
2015-02-15 12:51:16 +00:00
|
|
|
@server.restore()
|
|
|
|
|
|
|
|
|
|
describe "url site types", ->
|
2015-02-15 13:31:45 +00:00
|
|
|
beforeEach ->
|
|
|
|
|
@siteValidator = new JK.SiteValidator('url')
|
|
|
|
|
@siteValidator.init()
|
|
|
|
|
@url = 'http://www.jamkazam.com'
|
|
|
|
|
|
2015-02-15 12:51:16 +00:00
|
|
|
it "displays validator widget", ->
|
2015-02-15 13:31:45 +00:00
|
|
|
@siteValidator.data_input.val(@url)
|
|
|
|
|
@siteValidator.siteIsValid()
|
|
|
|
|
expect(@siteValidator.checkmark).toBeVisible()
|
2015-02-15 12:51:16 +00:00
|
|
|
|
|
|
|
|
it "displays error for bad url", ->
|
2015-02-15 13:31:45 +00:00
|
|
|
@url = @url.replace('http://', '')
|
|
|
|
|
@siteValidator.data_input.val(@url)
|
|
|
|
|
@siteValidator.didBlur()
|
|
|
|
|
expect(@siteValidator.checkmark).toBeHidden()
|
2015-02-15 12:51:16 +00:00
|
|
|
|
|
|
|
|
it "validates a good url", ->
|
2015-02-15 13:31:45 +00:00
|
|
|
@server.respondWith("GET", '/api/data_validation?sitetype=url&data=' + encodeURIComponent(@url),
|
2015-02-15 12:51:16 +00:00
|
|
|
[200, { "content-type": "application/json" }, JSON.stringify({"message": "Valid Site"})])
|
|
|
|
|
sinon.spy()
|
2015-02-15 13:31:45 +00:00
|
|
|
@siteValidator.data_input.val(@url)
|
|
|
|
|
@siteValidator.didBlur()
|
2015-02-15 12:51:16 +00:00
|
|
|
@server.respond()
|
2015-02-15 13:31:45 +00:00
|
|
|
expect(@siteValidator.checkmark).toBeVisible()
|
2015-02-15 12:51:16 +00:00
|
|
|
|
2015-02-15 13:31:45 +00:00
|
|
|
it "invalidates a bad url", ->
|
|
|
|
|
@url += "xx"
|
|
|
|
|
@server.respondWith("GET", '/api/data_validation?sitetype=url&data=' + encodeURIComponent(@url),
|
2015-02-15 12:51:16 +00:00
|
|
|
[200, { "content-type": "application/json" }, JSON.stringify({"message": "Invalid Site"})])
|
|
|
|
|
sinon.spy()
|
2015-02-15 13:31:45 +00:00
|
|
|
@siteValidator.data_input.val(@url)
|
|
|
|
|
@siteValidator.didBlur()
|
2015-02-15 12:51:16 +00:00
|
|
|
@server.respond()
|
2015-02-15 13:31:45 +00:00
|
|
|
expect(@siteValidator.checkmark).toBeHidden()
|
|
|
|
|
expect(@siteValidator.site_status).toEqual(false)
|
|
|
|
|
|
|
|
|
|
it "responds to static state query properly", ->
|
|
|
|
|
@siteValidator.siteIsValid()
|
|
|
|
|
dfr = @siteValidator.state()
|
|
|
|
|
expect(dfr.state()).toEqual("resolved")
|
|
|
|
|
@siteValidator.siteIsInvalid()
|
|
|
|
|
dfr = @siteValidator.state()
|
|
|
|
|
expect(dfr.state()).toEqual("rejected")
|
|
|
|
|
|
|
|
|
|
it "responds to deferred state query properly", ->
|
|
|
|
|
@server.respondWith("GET", '/api/data_validation?sitetype=url&data=' + encodeURIComponent(@url),
|
|
|
|
|
[200, { "content-type": "application/json" }, JSON.stringify({"message": "Invalid Site"})])
|
|
|
|
|
sinon.spy()
|
|
|
|
|
@siteValidator.data_input.val(@url)
|
|
|
|
|
expect(@siteValidator.site_status).toEqual(null)
|
|
|
|
|
dfr = @siteValidator.state()
|
|
|
|
|
expect(dfr.state()).toEqual("pending")
|
|
|
|
|
@server.respond()
|
|
|
|
|
expect(dfr.state()).toEqual("rejected")
|
2015-02-15 12:27:48 +00:00
|
|
|
|
2015-02-15 13:56:38 +00:00
|
|
|
describe "twitter site types", ->
|
|
|
|
|
beforeEach ->
|
|
|
|
|
@siteValidator = new JK.SiteValidator('twitter')
|
|
|
|
|
@siteValidator.init()
|
|
|
|
|
@uname = 'jamkazam'
|
|
|
|
|
|
|
|
|
|
it "displays validator widget", ->
|
|
|
|
|
@siteValidator.data_input.val(@uname)
|
|
|
|
|
@siteValidator.siteIsValid()
|
|
|
|
|
expect(@siteValidator.checkmark).toBeVisible()
|
|
|
|
|
|
|
|
|
|
it "validates a good username", ->
|
|
|
|
|
@server.respondWith("GET", '/api/data_validation?sitetype=twitter&data=' + encodeURIComponent(@uname),
|
|
|
|
|
[200, { "content-type": "application/json" }, JSON.stringify({"message": "Valid Site"})])
|
|
|
|
|
sinon.spy()
|
|
|
|
|
@siteValidator.data_input.val(@uname)
|
|
|
|
|
@siteValidator.didBlur()
|
|
|
|
|
@server.respond()
|
|
|
|
|
expect(@siteValidator.checkmark).toBeVisible()
|
|
|
|
|
|
|
|
|
|
it "invalidates a bad url", ->
|
|
|
|
|
@uname += "xx"
|
|
|
|
|
@server.respondWith("GET", '/api/data_validation?sitetype=twitter&data=' + encodeURIComponent(@uname),
|
|
|
|
|
[200, { "content-type": "application/json" }, JSON.stringify({"message": "Invalid Site"})])
|
|
|
|
|
sinon.spy()
|
|
|
|
|
@siteValidator.data_input.val(@uname)
|
|
|
|
|
@siteValidator.didBlur()
|
|
|
|
|
@server.respond()
|
|
|
|
|
expect(@siteValidator.checkmark).toBeHidden()
|
|
|
|
|
expect(@siteValidator.site_status).toEqual(false)
|
|
|
|
|
|