Skip to content

Commit

Permalink
Ste #46 - Saves image url to local storage and returns it in config load
Browse files Browse the repository at this point in the history
  • Loading branch information
cowley05 committed Jan 20, 2015
1 parent 31a4a63 commit 702e1e9
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 20 deletions.
4 changes: 4 additions & 0 deletions src/js/config/adminController.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ module.exports = {
localStorage.setItem('successText', successText)
},

saveSuccessImageUrl: function (successImageUrl) {
localStorage.setItem('successImageUrl', successImageUrl)
},

saveSeenProjects: function (projects) {
localStorage.setItem('seenProjects', projects)
}
Expand Down
6 changes: 6 additions & 0 deletions src/js/config/adminView.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ module.exports = function (controller) {
$('#include-all').click(view.projView().includeAll)
$('#exclude-all').click(view.projView().excludeAll)
$('#save-success-text').click(function(e) { e.preventDefault(); saveSuccessText(controller) })
$('#save-success-image').click(function(e) { e.preventDefault(); saveSuccessImageUrl(controller) })

$("#cctray-url").keypress(function(e) {
if(e.which == 13) {
Expand Down Expand Up @@ -85,6 +86,11 @@ function saveSuccessText(controller) {
controller.saveSuccessText(text)
}

function saveSuccessImageUrl(controller) {
var imageUrl = $('#success-image').val().trim()
controller.saveSuccessImageUrl(imageUrl)
}

function monitorPage(controller) {
saveSuccessText(controller)
}
Expand Down
1 change: 1 addition & 0 deletions src/js/config/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ module.exports = {
return {
cctray: localStorage.hasOwnProperty('cctray') ? localStorage.getItem('cctray') : 'https://builds.apache.org/cc.xml',
successText: localStorage.hasOwnProperty('successText') ? localStorage.getItem('successText') : '=(^.^)=',
successImageUrl: localStorage.hasOwnProperty('successImageUrl') ? localStorage.getItem('successText') : null,
includedProjects: projects === null ? null : projects.split(','),
serverType: localStorage.hasOwnProperty('serverType') ? localStorage.serverType : "",
projectsOnLastFetch: seenProjects === null ? null : seenProjects.split(',')
Expand Down
9 changes: 8 additions & 1 deletion test/js/config/adminControllerTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ describe('Configurable build monitor', function () {
expect(localStorage.setItem).toHaveBeenCalledWith('includedProjects', ['proj-1', 'proj-2'])
})


it('saves success text', function () {
spyOn(localStorage, 'setItem')

Expand All @@ -60,6 +59,14 @@ describe('Configurable build monitor', function () {
expect(localStorage.setItem).toHaveBeenCalledWith('successText', 'anything')
})

it('saves success image', function () {
spyOn(localStorage, 'setItem')

adminController.saveSuccessImageUrl('anything')

expect(localStorage.setItem).toHaveBeenCalledWith('successImageUrl', 'anything')
})

it('saves all projects', function() {
spyOn(localStorage, 'setItem')

Expand Down
62 changes: 43 additions & 19 deletions test/js/config/adminViewTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ describe('view logic', function () {
var adminController = { saveIncludedProjects: function(){},
getProjects: function(){},
saveSuccessText: function(){},
saveSuccessImageUrl: function(){},
saveSeenProjects: function(){}}

beforeEach(function () {
Expand Down Expand Up @@ -88,32 +89,55 @@ describe('view logic', function () {
expect($('#projects')).toContainHtml('reason')
})

describe('success text', function () {
beforeEach(function () {
$('body').append('<form>' +
'<input id="success-text" type=text name=success-text/>' +
'<input id="save-projects" class=button type=button>' +
'</form>')
})
describe('success', function () {

it('saves', function () {
spyOn(window.location, 'replace')
view.init()
$('#success-text').val('expected')
spyOn(adminController, 'saveSuccessText')
describe('success text', function () {
beforeEach(function () {
$('body').append('<form>' +
'<input id="success-text" type=text name=success-text/>' +
'<input id="save-projects" class=button type=button>' +
'</form>')
})

it('saves', function () {
spyOn(window.location, 'replace')
view.init()
$('#success-text').val('expected')
spyOn(adminController, 'saveSuccessText')

$('#save-projects').click()

$('#save-projects').click()
expect(adminController.saveSuccessText).toHaveBeenCalledWith('expected')
})

expect(adminController.saveSuccessText).toHaveBeenCalledWith('expected')
it('loads', function () {
localStorage.setItem('successText', 'any old value')
var textInput = $('#success-text')

view.init()

expect(textInput.val()).toBe('any old value')
})
})

it('loads', function () {
localStorage.setItem('successText', 'any old value')
var textInput = $('#success-text')
describe('success image', function () {
beforeEach(function () {
$('body').append('<form>' +
'<input id="success-image" type=text name=success-image/>' +
'<input id="save-success-image" class=button type=button>' +
'</form>')
})

view.init()
it('saves', function () {
spyOn(window.location, 'replace')
view.init()
$('#success-image').val('expected-image-url')
spyOn(adminController, 'saveSuccessImageUrl')

$('#save-success-image').click()

expect(textInput.val()).toBe('any old value')
expect(adminController.saveSuccessImageUrl).toHaveBeenCalledWith('expected-image-url')
})
})
})

Expand Down
2 changes: 2 additions & 0 deletions test/js/config/configTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,15 @@ describe('Configurable build monitor', function () {
localStorage.setItem('cctray', 'some-url')
localStorage.setItem('includedProjects', ['proj'])
localStorage.setItem('successText', 'hello world')
localStorage.setItem('successImageUrl', 'hello world ')
localStorage.setItem('seenProjects', ['proj'])

var settings = config.load()

expect(settings.cctray).toBe('some-url')
expect(settings.includedProjects).toEqual(['proj'])
expect(settings.successText).toEqual('hello world')
expect(settings.successImageUrl).toEqual('hello world')
expect(settings.projectsOnLastFetch).toEqual(['proj'])
})

Expand Down

0 comments on commit 702e1e9

Please sign in to comment.