mirror of https://github.com/v2ray/v2ray-core
				
				
				
			
		
			
				
	
	
		
			35 lines
		
	
	
		
			848 B
		
	
	
	
		
			Go
		
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			848 B
		
	
	
	
		
			Go
		
	
	
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()
 | 
						|
}
 |