mirror of
https://github.com/wassname/side-by-side.git
synced 2026-09-09 11:34:24 +08:00
63 lines
1.5 KiB
CoffeeScript
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' }
|