baseURL_test.go (2088B)
1 // Copyright 2018 The Hugo Authors. All rights reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // http://www.apache.org/licenses/LICENSE-2.0 7 // 8 // Unless required by applicable law or agreed to in writing, software 9 // distributed under the License is distributed on an "AS IS" BASIS, 10 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 // See the License for the specific language governing permissions and 12 // limitations under the License. 13 14 package paths 15 16 import ( 17 "testing" 18 19 qt "github.com/frankban/quicktest" 20 ) 21 22 func TestBaseURL(t *testing.T) { 23 c := qt.New(t) 24 b, err := newBaseURLFromString("http://example.com") 25 c.Assert(err, qt.IsNil) 26 c.Assert(b.String(), qt.Equals, "http://example.com") 27 28 p, err := b.WithProtocol("webcal://") 29 c.Assert(err, qt.IsNil) 30 c.Assert(p, qt.Equals, "webcal://example.com") 31 32 p, err = b.WithProtocol("webcal") 33 c.Assert(err, qt.IsNil) 34 c.Assert(p, qt.Equals, "webcal://example.com") 35 36 _, err = b.WithProtocol("mailto:") 37 c.Assert(err, qt.Not(qt.IsNil)) 38 39 b, err = newBaseURLFromString("mailto:hugo@rules.com") 40 c.Assert(err, qt.IsNil) 41 c.Assert(b.String(), qt.Equals, "mailto:hugo@rules.com") 42 43 // These are pretty constructed 44 p, err = b.WithProtocol("webcal") 45 c.Assert(err, qt.IsNil) 46 c.Assert(p, qt.Equals, "webcal:hugo@rules.com") 47 48 p, err = b.WithProtocol("webcal://") 49 c.Assert(err, qt.IsNil) 50 c.Assert(p, qt.Equals, "webcal://hugo@rules.com") 51 52 // Test with "non-URLs". Some people will try to use these as a way to get 53 // relative URLs working etc. 54 b, err = newBaseURLFromString("/") 55 c.Assert(err, qt.IsNil) 56 c.Assert(b.String(), qt.Equals, "/") 57 58 b, err = newBaseURLFromString("") 59 c.Assert(err, qt.IsNil) 60 c.Assert(b.String(), qt.Equals, "") 61 62 // BaseURL with sub path 63 b, err = newBaseURLFromString("http://example.com/sub") 64 c.Assert(err, qt.IsNil) 65 c.Assert(b.String(), qt.Equals, "http://example.com/sub") 66 c.Assert(b.HostURL(), qt.Equals, "http://example.com") 67 }