diff --git a/.github/index.tmpl b/.github/TEST_DATA/index.tmpl similarity index 100% rename from .github/index.tmpl rename to .github/TEST_DATA/index.tmpl diff --git a/.github/TEST_DATA/ssl.key b/.github/TEST_DATA/ssl.key new file mode 100644 index 00000000..cd9e2515 --- /dev/null +++ b/.github/TEST_DATA/ssl.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQD4IQusAs8PJdnG +3mURt/AXtgC+ceqLOatJ49JJE1VPTkMAy+oE1f1XvkMrYsHqmDf6GWVzgVXryL4U +wq2/nJSm56ddhN55nI8oSN3dtywUB8/ShelEN73nlN77PeD9tl6NksPwWaKrqxq0 +FlabRPZSQCfmgZbhDV8Sa8mfCkFU0G0lit6kLGceCKMvmW+9Bz7ebsYmVdmVMxmf +IJStFD44lWFTdUc65WISKEdW2ELcUefb0zOLw+0PCbXFGJH5x5ktksW8+BBk2Hkg +GeQRL/qPCccthbScO0VgNj3zJ3ZZL0ObSDAbvNDG85joeNjDNq5DT/BAZ0bOSbEF +sh+f9BAzAgMBAAECggEBAJWv2cq7Jw6MVwSRxYca38xuD6TUNBopgBvjREixURW2 +sNUaLuMb9Omp7fuOaE2N5rcJ+xnjPGIxh/oeN5MQctz9gwn3zf6vY+15h97pUb4D +uGvYPRDaT8YVGS+X9NMZ4ZCmqW2lpWzKnCFoGHcy8yZLbcaxBsRdvKzwOYGoPiFb +K2QuhXZ/1UPmqK9i2DFKtj40X6vBszTNboFxOVpXrPu0FJwLVSDf2hSZ4fMM0DH3 +YqwKcYf5te+hxGKgrqRA3tn0NCWii0in6QIwXMC+kMw1ebg/tZKqyDLMNptAK8J+ +DVw9m5X1seUHS5ehU/g2jrQrtK5WYn7MrFK4lBzlRwECgYEA/d1TeANYECDWRRDk +B0aaRZs87Rwl/J9PsvbsKvtU/bX+OfSOUjOa9iQBqn0LmU8GqusEET/QVUfocVwV +Bggf/5qDLxz100Rj0ags/yE/kNr0Bb31kkkKHFMnCT06YasR7qKllwrAlPJvQv9x +IzBKq+T/Dx08Wep9bCRSFhzRCnsCgYEA+jdeZXTDr/Vz+D2B3nAw1frqYFfGnEVY +wqmoK3VXMDkGuxsloO2rN+SyiUo3JNiQNPDub/t7175GH5pmKtZOlftePANsUjBj +wZ1D0rI5Bxu/71ibIUYIRVmXsTEQkh/ozoh3jXCZ9+bLgYiYx7789IUZZSokFQ3D +FICUT9KJ36kCgYAGoq9Y1rWJjmIrYfqj2guUQC+CfxbbGIrrwZqAsRsSmpwvhZ3m +tiSZxG0quKQB+NfSxdvQW5ulbwC7Xc3K35F+i9pb8+TVBdeaFkw+yu6vaZmxQLrX +fQM/pEjD7A7HmMIaO7QaU5SfEAsqdCTP56Y8AftMuNXn/8IRfo2KuGwaWwKBgFpU +ILzJoVdlad9E/Rw7LjYhZfkv1uBVXIyxyKcfrkEXZSmozDXDdxsvcZCEfVHM6Ipk +K/+7LuMcqp4AFEAEq8wTOdq6daFaHLkpt/FZK6M4TlruhtpFOPkoNc3e45eM83OT +6mziKINJC1CQ6m65sQHpBtjxlKMRG8rL/D6wx9s5AoGBAMRlqNPMwglT3hvDmsAt +9Lf9pdmhERUlHhD8bj8mDaBj2Aqv7f6VRJaYZqP403pKKQexuqcn80mtjkSAPFkN +Cj7BVt/RXm5uoxDTnfi26RF9F6yNDEJ7UU9+peBr99aazF/fTgW/1GcMkQnum8uV +c257YgaWmjK9uB0Y2r2VxS0G +-----END PRIVATE KEY----- \ No newline at end of file diff --git a/.github/TEST_DATA/ssl.pem b/.github/TEST_DATA/ssl.pem new file mode 100644 index 00000000..4cf41c9e --- /dev/null +++ b/.github/TEST_DATA/ssl.pem @@ -0,0 +1,17 @@ +-----BEGIN CERTIFICATE----- +MIICujCCAaKgAwIBAgIJAMbXnKZ/cikUMA0GCSqGSIb3DQEBCwUAMBUxEzARBgNV +BAMTCnVidW50dS5uYW4wHhcNMTUwMjA0MDgwMTM5WhcNMjUwMjAxMDgwMTM5WjAV +MRMwEQYDVQQDEwp1YnVudHUubmFuMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA+CELrALPDyXZxt5lEbfwF7YAvnHqizmrSePSSRNVT05DAMvqBNX9V75D +K2LB6pg3+hllc4FV68i+FMKtv5yUpuenXYTeeZyPKEjd3bcsFAfP0oXpRDe955Te ++z3g/bZejZLD8Fmiq6satBZWm0T2UkAn5oGW4Q1fEmvJnwpBVNBtJYrepCxnHgij +L5lvvQc+3m7GJlXZlTMZnyCUrRQ+OJVhU3VHOuViEihHVthC3FHn29Mzi8PtDwm1 +xRiR+ceZLZLFvPgQZNh5IBnkES/6jwnHLYW0nDtFYDY98yd2WS9Dm0gwG7zQxvOY +6HjYwzauQ0/wQGdGzkmxBbIfn/QQMwIDAQABow0wCzAJBgNVHRMEAjAAMA0GCSqG +SIb3DQEBCwUAA4IBAQBQjKm/4KN/iTgXbLTL3i7zaxYXFLXsnT1tF+ay4VA8aj98 +L3JwRTciZ3A5iy/W4VSCt3eASwOaPWHKqDBB5RTtL73LoAqsWmO3APOGQAbixcQ2 +45GXi05OKeyiYRi1Nvq7Unv9jUkRDHUYVPZVSAjCpsXzPhFkmZoTRxmx5l0ZF7Li +K91lI5h+eFq0dwZwrmlPambyh1vQUi70VHv8DNToVU29kel7YLbxGbuqETfhrcy6 +X+Mha6RYITkAn5FqsZcKMsc9eYGEF4l3XV+oS7q6xfTxktYJMFTI18J0lQ2Lv/CI +whdMnYGntDQBE/iFCrJEGNsKGc38796GBOb5j+zd +-----END CERTIFICATE----- \ No newline at end of file diff --git a/.github/template.html b/.github/TEST_DATA/template.html similarity index 100% rename from .github/template.html rename to .github/TEST_DATA/template.html diff --git a/.github/fixture/testRoutes.json b/.github/TEST_DATA/testRoutes.json similarity index 100% rename from .github/fixture/testRoutes.json rename to .github/TEST_DATA/testRoutes.json diff --git a/app_test.go b/app_test.go index 2d4dcfc2..d71456bf 100644 --- a/app_test.go +++ b/app_test.go @@ -5,9 +5,11 @@ package fiber import ( + "crypto/tls" "errors" "fmt" "io/ioutil" + "net" "net/http/httptest" "reflect" "regexp" @@ -249,6 +251,45 @@ func Test_App_Add_Method_Test(t *testing.T) { }) } +func Test_App_Listen_TLS(t *testing.T) { + app := New() + app.Settings.Prefork = true + + // Create tls certificate + cer, err := tls.LoadX509KeyPair("./.github/TEST_DATA/ssl.pem", "./.github/TEST_DATA/ssl.key") + if err != nil { + utils.AssertEqual(t, nil, err) + } + config := &tls.Config{Certificates: []tls.Certificate{cer}} + + go func() { + time.Sleep(1 * time.Second) + utils.AssertEqual(t, nil, app.Shutdown()) + }() + + utils.AssertEqual(t, nil, app.Listen(3078, config)) +} + +func Test_App_Listener_TLS(t *testing.T) { + app := New() + + // Create tls certificate + cer, err := tls.LoadX509KeyPair("./.github/TEST_DATA/ssl.pem", "./.github/TEST_DATA/ssl.key") + if err != nil { + utils.AssertEqual(t, nil, err) + } + config := &tls.Config{Certificates: []tls.Certificate{cer}} + + ln, err := net.Listen("tcp4", ":3055") + utils.AssertEqual(t, nil, err) + + go func() { + time.Sleep(1 * time.Second) + utils.AssertEqual(t, nil, app.Shutdown()) + }() + + utils.AssertEqual(t, nil, app.Listener(ln, config)) +} func Test_App_Use_Params_Group(t *testing.T) { app := New() diff --git a/ctx_test.go b/ctx_test.go index 158fac93..51f89532 100644 --- a/ctx_test.go +++ b/ctx_test.go @@ -1411,7 +1411,7 @@ func Test_Ctx_Render(t *testing.T) { app := New() ctx := app.AcquireCtx(&fasthttp.RequestCtx{}) defer app.ReleaseCtx(ctx) - err := ctx.Render("./.github/template.html", Map{ + err := ctx.Render("./.github/TEST_DATA/template.html", Map{ "Title": "Hello, World!", }) utils.AssertEqual(t, nil, err) @@ -1428,7 +1428,7 @@ func (t *testTemplateEngine) Render(w io.Writer, name string, bind interface{}, } func (t *testTemplateEngine) Load() error { - t.templates = template.Must(template.ParseGlob("./.github/*.tmpl")) + t.templates = template.Must(template.ParseGlob("./.github/TEST_DATA/*.tmpl")) return nil } diff --git a/router_test.go b/router_test.go index 71a2e33c..b1d88f04 100644 --- a/router_test.go +++ b/router_test.go @@ -20,7 +20,7 @@ import ( var routesFixture = routeJSON{} func init() { - dat, err := ioutil.ReadFile("./.github/fixture/testRoutes.json") + dat, err := ioutil.ReadFile("./.github/TEST_DATA/testRoutes.json") if err != nil { panic(err) }