added tests
diff --git a/hooks/sentry/sentry.go b/hooks/sentry/sentry.go
index 5c07eb2..74e8bbe 100644
--- a/hooks/sentry/sentry.go
+++ b/hooks/sentry/sentry.go
@@ -1,4 +1,4 @@
-package sentry_hook
+package logrus_sentry
 
 import (
 	"github.com/Sirupsen/logrus"
diff --git a/hooks/sentry/sentry_test.go b/hooks/sentry/sentry_test.go
new file mode 100644
index 0000000..747d75f
--- /dev/null
+++ b/hooks/sentry/sentry_test.go
@@ -0,0 +1,93 @@
+package logrus_sentry
+
+import (
+	"encoding/json"
+	"fmt"
+	"io/ioutil"
+	"net/http"
+	"net/http/httptest"
+	"strings"
+	"testing"
+
+	"github.com/Sirupsen/logrus"
+	"github.com/getsentry/raven-go"
+)
+
+const (
+	message     = "error message"
+	server_name = "testserver.internal"
+	logger_name = "test.logger"
+)
+
+func getTestLogger() *logrus.Logger {
+	l := logrus.New()
+	l.Out = ioutil.Discard
+	return l
+}
+
+func getTestDSN(t *testing.T) (string, <-chan *raven.Packet, func()) {
+	pch := make(chan *raven.Packet, 1)
+	s := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
+		defer req.Body.Close()
+		d := json.NewDecoder(req.Body)
+		p := &raven.Packet{}
+		err := d.Decode(p)
+		if err != nil {
+			t.Fatal(err.Error())
+		}
+
+		pch <- p
+	}))
+
+	fragments := strings.SplitN(s.URL, "://", 2)
+	dsn := "%s://public:secret@%s/sentry/project-id"
+
+	return fmt.Sprintf(dsn, fragments[0], fragments[1]), pch, s.Close
+}
+
+func TestSpecialFields(t *testing.T) {
+	logger := getTestLogger()
+	dsn, pch, closeFn := getTestDSN(t)
+	defer closeFn()
+
+	hook, err := NewSentryHook(dsn, []logrus.Level{
+		logrus.ErrorLevel,
+	})
+
+	if err != nil {
+		t.Fatal(err.Error())
+	}
+	logger.Hooks.Add(hook)
+	logger.WithFields(logrus.Fields{
+		"server_name": server_name,
+		"logger":      logger_name,
+	}).Error(message)
+
+	packet := <-pch
+	if packet.Logger != logger_name {
+		t.Errorf("logger should have been %s, was %s", logger_name, packet.Logger)
+	}
+
+	if packet.ServerName != server_name {
+		t.Errorf("server_name should have been %s, was %s", server_name, packet.ServerName)
+	}
+}
+
+func TestSentryHandler(t *testing.T) {
+	logger := getTestLogger()
+	dsn, pch, closeFn := getTestDSN(t)
+	defer closeFn()
+	hook, err := NewSentryHook(dsn, []logrus.Level{
+		logrus.ErrorLevel,
+	})
+	if err != nil {
+		t.Fatal(err.Error())
+	}
+	logger.Hooks.Add(hook)
+
+	logger.Error(message)
+	packet := <-pch
+	if packet.Message != message {
+		t.Errorf("message should have been %s, was %s", message, packet.Message)
+	}
+}