|
|
@@ -0,0 +1,34 @@
|
|
|
+package log
|
|
|
+
|
|
|
+import (
|
|
|
+ "io/ioutil"
|
|
|
+ "os"
|
|
|
+ "strings"
|
|
|
+ "testing"
|
|
|
+ "time"
|
|
|
+
|
|
|
+ "github.com/v2ray/v2ray-core/testing/unit"
|
|
|
+)
|
|
|
+
|
|
|
+func TestAccessLog(t *testing.T) {
|
|
|
+ assert := unit.Assert(t)
|
|
|
+
|
|
|
+ filename := "/tmp/test_access_log.log"
|
|
|
+ InitAccessLogger(filename)
|
|
|
+ _, err := os.Stat(filename)
|
|
|
+ assert.Error(err).IsNil()
|
|
|
+
|
|
|
+ Access("test_from", "test_to", AccessAccepted, "test_reason")
|
|
|
+ <-time.After(2 * time.Second)
|
|
|
+
|
|
|
+ accessLoggerInstance.(*fileAccessLogger).close()
|
|
|
+ accessLoggerInstance = &noOpAccessLogger{}
|
|
|
+
|
|
|
+ content, err := ioutil.ReadFile(filename)
|
|
|
+ assert.Error(err).IsNil()
|
|
|
+
|
|
|
+ assert.Bool(strings.Contains(string(content), "test_from")).IsTrue()
|
|
|
+ assert.Bool(strings.Contains(string(content), "test_to")).IsTrue()
|
|
|
+ assert.Bool(strings.Contains(string(content), "test_reason")).IsTrue()
|
|
|
+ assert.Bool(strings.Contains(string(content), "accepted")).IsTrue()
|
|
|
+}
|