2017-07-06 17:28:13 +03:00
package integration
2015-09-27 16:59:51 +03:00
import (
2017-05-17 16:22:44 +03:00
"fmt"
2015-09-27 16:59:51 +03:00
"net/http"
2017-05-17 16:22:44 +03:00
"strings"
2015-09-27 16:59:51 +03:00
"time"
2017-05-17 16:22:44 +03:00
"github.com/containous/traefik/integration/try"
2016-04-02 13:40:21 +03:00
"github.com/go-check/check"
2015-09-27 16:59:51 +03:00
checker "github.com/vdemeester/shakers"
)
2015-11-04 01:06:31 +03:00
// SimpleSuite
type SimpleSuite struct { BaseSuite }
2015-09-27 16:59:51 +03:00
func ( s * SimpleSuite ) TestInvalidConfigShouldFail ( c * check . C ) {
2017-07-10 15:58:31 +03:00
cmd , output := s . cmdTraefik ( withConfigFile ( "fixtures/invalid_configuration.toml" ) )
2016-04-19 20:23:08 +03:00
2017-05-17 16:22:44 +03:00
err := cmd . Start ( )
c . Assert ( err , checker . IsNil )
2016-04-19 20:23:08 +03:00
defer cmd . Process . Kill ( )
2017-05-17 16:22:44 +03:00
err = try . Do ( 500 * time . Millisecond , func ( ) error {
expected := "Near line 0 (last key parsed ''): bare keys cannot contain '{'"
2017-07-10 15:58:31 +03:00
actual := output . String ( )
2017-05-17 16:22:44 +03:00
if ! strings . Contains ( actual , expected ) {
return fmt . Errorf ( "Got %s, wanted %s" , actual , expected )
}
return nil
} )
c . Assert ( err , checker . IsNil )
2015-09-27 16:59:51 +03:00
}
func ( s * SimpleSuite ) TestSimpleDefaultConfig ( c * check . C ) {
2017-07-10 15:58:31 +03:00
cmd , _ := s . cmdTraefik ( withConfigFile ( "fixtures/simple_default.toml" ) )
2017-05-17 16:22:44 +03:00
2015-09-27 16:59:51 +03:00
err := cmd . Start ( )
c . Assert ( err , checker . IsNil )
2015-11-04 01:06:31 +03:00
defer cmd . Process . Kill ( )
2015-09-27 16:59:51 +03:00
// TODO validate : run on 80
2016-03-15 20:57:56 +03:00
// Expected a 404 as we did not configure anything
2017-05-17 16:22:44 +03:00
err = try . GetRequest ( "http://127.0.0.1:8000/" , 1 * time . Second , try . StatusCodeIs ( http . StatusNotFound ) )
2016-03-15 20:57:56 +03:00
c . Assert ( err , checker . IsNil )
2015-11-04 01:06:31 +03:00
}
func ( s * SimpleSuite ) TestWithWebConfig ( c * check . C ) {
2017-07-10 15:58:31 +03:00
cmd , _ := s . cmdTraefik ( withConfigFile ( "fixtures/simple_web.toml" ) )
2017-05-17 16:22:44 +03:00
2015-11-04 01:06:31 +03:00
err := cmd . Start ( )
c . Assert ( err , checker . IsNil )
defer cmd . Process . Kill ( )
2017-05-17 16:22:44 +03:00
err = try . GetRequest ( "http://127.0.0.1:8080/api" , 1 * time . Second , try . StatusCodeIs ( http . StatusOK ) )
2015-11-04 01:06:31 +03:00
c . Assert ( err , checker . IsNil )
2015-09-27 16:59:51 +03:00
}
2016-06-02 16:17:04 +03:00
func ( s * SimpleSuite ) TestDefaultEntryPoints ( c * check . C ) {
2017-07-10 15:58:31 +03:00
cmd , output := s . cmdTraefik ( "--debug" )
2016-06-02 16:17:04 +03:00
2017-05-17 16:22:44 +03:00
err := cmd . Start ( )
c . Assert ( err , checker . IsNil )
2016-06-02 16:17:04 +03:00
defer cmd . Process . Kill ( )
2017-05-17 16:22:44 +03:00
err = try . Do ( 500 * time . Millisecond , func ( ) error {
expected := "\"DefaultEntryPoints\":[\"http\"]"
2017-07-10 15:58:31 +03:00
actual := output . String ( )
2017-05-17 16:22:44 +03:00
if ! strings . Contains ( actual , expected ) {
return fmt . Errorf ( "Got %s, wanted %s" , actual , expected )
}
return nil
} )
c . Assert ( err , checker . IsNil )
2016-06-02 16:17:04 +03:00
}
func ( s * SimpleSuite ) TestPrintHelp ( c * check . C ) {
2017-07-10 15:58:31 +03:00
cmd , output := s . cmdTraefik ( "--help" )
2016-06-02 16:17:04 +03:00
2017-05-17 16:22:44 +03:00
err := cmd . Start ( )
c . Assert ( err , checker . IsNil )
2016-06-02 16:17:04 +03:00
defer cmd . Process . Kill ( )
2017-05-17 16:22:44 +03:00
err = try . Do ( 500 * time . Millisecond , func ( ) error {
expected := "Usage:"
notExpected := "panic:"
2017-07-10 15:58:31 +03:00
actual := output . String ( )
2017-05-17 16:22:44 +03:00
if strings . Contains ( actual , notExpected ) {
return fmt . Errorf ( "Got %s" , actual )
}
if ! strings . Contains ( actual , expected ) {
return fmt . Errorf ( "Got %s, wanted %s" , actual , expected )
}
return nil
} )
c . Assert ( err , checker . IsNil )
2016-06-02 16:17:04 +03:00
}