Просмотр исходного кода

makefile tasks & middleware_test

tags/v0.9.0
jimzhan 9 лет назад
Родитель
Сommit
f799909a2f
3 измененных файлов: 78 добавлений и 8 удалений
  1. +17
    -8
      Makefile
  2. Двоичные данные
      cmd/rex/rex
  3. +61
    -0
      middleware_test.go

+ 17
- 8
Makefile Просмотреть файл

@@ -1,11 +1,20 @@
#
# Makefile
# jim, 2015-06-17 17:36
#
.PHONY: all test clean build install

all:
@echo "Makefile needs your attention"
GOFLAGS ?= $(GOFLAGS:)

all: install test

# vim:ft=make
#
build:
@go build $(GOFLAGS) ./...

install:
@go get $(GOFLAGS) ./...

test: install
@go test -v ./...

bench: install
@go test -run=NONE -bench=. $(GOFLAGS) ./...

clean:
@go clean $(GOFLAGS) -i ./...

Двоичные данные
cmd/rex/rex Просмотреть файл


+ 61
- 0
middleware_test.go Просмотреть файл

@@ -0,0 +1,61 @@
/* ----------------------------------------------------------------------
* ______ ___ __
* / ____/___ / | ____ __ ___ __/ /_ ___ ________
* / / __/ __ \/ /| | / __ \/ / / / | /| / / __ \/ _ \/ ___/ _ \
* / /_/ / /_/ / ___ |/ / / / /_/ /| |/ |/ / / / / __/ / / __/
* \____/\____/_/ |_/_/ /_/\__. / |__/|__/_/ /_/\___/_/ \___/
* /____/
*
* (C) Copyright 2015 GoAnywhere (http://goanywhere.io).
* ----------------------------------------------------------------------
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ----------------------------------------------------------------------*/
package rex

import (
"net/http"
"net/http/httptest"
"testing"

. "github.com/smartystreets/goconvey/convey"
)

func TestMiddleware(t *testing.T) {
env := func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("X-Powered-By", "rex")
next.ServeHTTP(w, r)
})
}

json := func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
next.ServeHTTP(w, r)
w.Header().Set("Content-Type", "application/json")
})
}

mw := new(middleware)
mw.stack = append(mw.stack, env)
mw.stack = append(mw.stack, json)
Convey("rex.middleware", t, func() {

request, _ := http.NewRequest("GET", "/", nil)
response := httptest.NewRecorder()

mw.ServeHTTP(response, request)

So(response.Header().Get("X-Powered-By"), ShouldEqual, "rex")
So(response.Header().Get("Content-Type"), ShouldEqual, "application/json")
})
}

Загрузка…
Отмена
Сохранить