From 4075854440730beba19fc0aa395f53ea31f3896e Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Fri, 27 Jun 2014 11:51:53 +1000 Subject: [PATCH] Navigation.go supports full URLs --- .../darkswarm/services/navigation.js.coffee | 8 ++++--- .../darkswarm/services/navigation.js.coffee | 21 +++++++++++++++++-- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/app/assets/javascripts/darkswarm/services/navigation.js.coffee b/app/assets/javascripts/darkswarm/services/navigation.js.coffee index cf64cd1666..fd59d0f348 100644 --- a/app/assets/javascripts/darkswarm/services/navigation.js.coffee +++ b/app/assets/javascripts/darkswarm/services/navigation.js.coffee @@ -1,4 +1,4 @@ -Darkswarm.factory 'Navigation', ($location) -> +Darkswarm.factory 'Navigation', ($location, $window) -> new class Navigation path: null @@ -10,7 +10,6 @@ Darkswarm.factory 'Navigation', ($location) -> $location.path(@path) toggle: (path = false)=> - console.log "toggling" @path = path || @path if $location.path() == @path $location.path("/") @@ -18,4 +17,7 @@ Darkswarm.factory 'Navigation', ($location) -> @navigate(path) go: (path)-> - window.location.pathname = path + if path.match /^http/ + $window.location.href = path + else + $window.location.pathname = path diff --git a/spec/javascripts/unit/darkswarm/services/navigation.js.coffee b/spec/javascripts/unit/darkswarm/services/navigation.js.coffee index 3701a7bded..8b5912bff8 100644 --- a/spec/javascripts/unit/darkswarm/services/navigation.js.coffee +++ b/spec/javascripts/unit/darkswarm/services/navigation.js.coffee @@ -1,11 +1,28 @@ describe 'Navigation service', -> Navigation = null - + window = + location: + href: null + pathname: null + beforeEach -> - module 'Darkswarm' + module 'Darkswarm', ($provide) -> + $provide.value "$window", window + null inject ($injector)-> Navigation = $injector.get("Navigation") + it "caches the path provided", -> Navigation.navigate "/foo" expect(Navigation.path).toEqual "/foo" + + describe "redirecting", -> + it "redirects to full URLs", -> + Navigation.go "http://google.com" + expect(window.location.href).toEqual "http://google.com" + + it "redirects to paths", -> + Navigation.go "/woo/yeah" + expect(window.location.pathname).toEqual "/woo/yeah" + \ No newline at end of file