Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Łukasz Nowak
caddy
Commits
17c91152
Commit
17c91152
authored
9 years ago
by
Matt Holt
Browse files
Options
Download
Plain Diff
Merge pull request #266 from Makpoc/master
Add tests for root.go
parents
d414ef0d
e66aa25f
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
99 additions
and
0 deletions
+99
-0
config/setup/root_test.go
config/setup/root_test.go
+99
-0
No files found.
config/setup/root_test.go
0 → 100644
View file @
17c91152
package
setup
import
(
"fmt"
"io/ioutil"
"os"
"path/filepath"
"strings"
"testing"
)
func
TestRoot
(
t
*
testing
.
T
)
{
// Predefined error substrings
parseErrContent
:=
"Parse error:"
unableToAccessErrContent
:=
"Unable to access root path"
existingDirPath
,
err
:=
getTempDirPath
()
if
err
!=
nil
{
t
.
Fatalf
(
"BeforeTest: Failed to find an existing directory for testing! Error was: %v"
,
err
)
}
nonExistingDir
:=
filepath
.
Join
(
existingDirPath
,
"highly_unlikely_to_exist_dir"
)
existingFile
,
err
:=
ioutil
.
TempFile
(
""
,
"root_test"
)
if
err
!=
nil
{
t
.
Fatalf
(
"BeforeTest: Failed to create temp file for testing! Error was: %v"
,
err
)
}
defer
os
.
Remove
(
existingFile
.
Name
())
unaccessiblePath
:=
filepath
.
Join
(
existingFile
.
Name
(),
"some_name"
)
tests
:=
[]
struct
{
input
string
shouldErr
bool
expectedRoot
string
// expected root, set to the controller. Empty for negative cases.
expectedErrContent
string
// substring from the expected error. Empty for positive cases.
}{
// positive
{
fmt
.
Sprintf
(
`root %s`
,
nonExistingDir
),
false
,
nonExistingDir
,
""
,
},
{
fmt
.
Sprintf
(
`root %s`
,
existingDirPath
),
false
,
existingDirPath
,
""
,
},
// negative
{
`root `
,
true
,
""
,
parseErrContent
,
},
{
fmt
.
Sprintf
(
`root %s`
,
unaccessiblePath
),
true
,
""
,
unableToAccessErrContent
,
},
{
fmt
.
Sprintf
(
`root {
%s
}`
,
existingDirPath
),
true
,
""
,
parseErrContent
,
},
}
for
i
,
test
:=
range
tests
{
c
:=
NewTestController
(
test
.
input
)
mid
,
err
:=
Root
(
c
)
if
test
.
shouldErr
&&
err
==
nil
{
t
.
Errorf
(
"Test %d: Expected error but found nil for input %s"
,
i
,
test
.
input
)
}
if
err
!=
nil
{
if
!
test
.
shouldErr
{
t
.
Errorf
(
"Test %d: Expected no error but found one for input %s. Error was: %v"
,
i
,
test
.
input
,
err
)
}
if
!
strings
.
Contains
(
err
.
Error
(),
test
.
expectedErrContent
)
{
t
.
Errorf
(
"Test %d: Expected error to contain: %v, found error: %v, input: %s"
,
i
,
test
.
expectedErrContent
,
err
,
test
.
input
)
}
}
// the Root method always returns a nil middleware
if
mid
!=
nil
{
t
.
Errorf
(
"Middware, returned from Root() was not nil: %v"
,
mid
)
}
// check c.Root only if we are in a positive test.
if
!
test
.
shouldErr
&&
test
.
expectedRoot
!=
c
.
Root
{
t
.
Errorf
(
"Root not correctly set for input %s. Expected: %s, actual: %s"
,
test
.
input
,
test
.
expectedRoot
,
c
.
Root
)
}
}
}
// getTempDirPath returnes the path to the system temp directory. If it does not exists - an error is returned.
func
getTempDirPath
()
(
string
,
error
)
{
tempDir
:=
os
.
TempDir
()
_
,
err
:=
os
.
Stat
(
tempDir
)
if
err
!=
nil
{
return
""
,
err
}
return
tempDir
,
nil
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment