|  | @@ -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()
 | 
	
		
			
				|  |  | +}
 |