Files
2015-03-13 20:06:51 +01:00

63 lines
1.5 KiB
CoffeeScript

route = {}
module "route", {}
setup = (
base = 'http://example.com'
path = '/base:asdf/section:7'
hash = '#test'
) ->
angular.module("sideBySide").service("$location", ->
@path = -> path
@url = -> path + hash
@absUrl = -> base + path + hash
@
)
route = getInjector().get 'route'
test "has app url", ->
setup()
equal route.appUrl, 'http://example.com'
test "gets parameters", ->
setup()
equal route.get(), 'base:asdf/section:7'
test "gets base dir", ->
setup()
equal route.getBaseDir(), 'http://example.com/asdf/'
test "gets more complicated base dir", ->
setup('http://example.com/path/#', '/base:test.this', '')
equal route.getBaseDir(), 'http://example.com/path/test/this/'
test "updates parameters", ->
setup()
route.update('base', 'zxcv')
equal route.get(), 'base:zxcv/section:7'
test "adds parameter", ->
setup('http://example.com', '/base:asdf')
route.update('section', '1')
equal route.get(), 'base:asdf/section:1'
test "processes arrays from url", ->
setup('http://example.com', '/display:Language:Czech,English', '')
deepEqual route.params, {
'base': ''
'display': {
'Language': [ 'Czech', 'English' ]
}
}
test "adds base before section", ->
setup('http://example.com', '/section:7', '')
route.update('base', 'the_raven')
equal route.get(), 'base:the_raven/section:7'
test "works with hash url", ->
setup('http://example.com/#', '/base:asdf', '')
deepEqual route.appUrl, 'http://example.com'
deepEqual route.params, { 'base': 'asdf' }