Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit1e5d6d9

Browse files
committed
test: upd geoIP test
1 parent2e6aa32 commit1e5d6d9

File tree

2 files changed

+29
-15
lines changed

2 files changed

+29
-15
lines changed

‎common_test.go‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@ import "net/http"
44

55
const (
66
geoIPdata="GeoLite2-Country.mmdb"
7-
googleUSIP="74.125.131.105"
87
localIP="127.0.0.1"
8+
aliCNIP="47.88.198.38"
9+
googleUSIP="74.125.131.105"
910
testURL="http://example.com"
1011
torListURL="https://cdn.nws.neurodyne.pro/nws-cdn-ut8hw561/waf/torbulkexitlist"// custom TOR list URL for testing
1112
)

‎handler_test.go‎

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -66,31 +66,44 @@ func TestBlockedRequestPhase1_GeoIPBlocking(t *testing.T) {
6666
geoIPBlock,err:=geoIPHandler.LoadGeoIPDatabase(geoIPdata)
6767
assert.NoError(t,err)
6868

69+
state:=&WAFState{}
70+
6971
middleware:=&Middleware{
7072
logger:logger,
73+
ipBlacklist:iptrie.NewTrie(),
7174
geoIPHandler:geoIPHandler,
7275
CountryBlock:CountryAccessFilter{
7376
Enabled:true,
74-
CountryList: []string{"US"},
77+
CountryList: []string{"US","RU"},
7578
GeoIPDBPath:geoIPdata,// Path to a test GeoIP database
7679
geoIP:geoIPBlock,
7780
},
7881
CustomResponses:customResponse,
7982
}
8083

81-
// Simulate a request from a blocked country (US)
82-
req:=httptest.NewRequest("GET",testURL,nil)
83-
req.RemoteAddr=googleUSIP
8484
w:=httptest.NewRecorder()
85-
state:=&WAFState{}
8685

87-
// Process the request in Phase 1
88-
middleware.handlePhase(w,req,1,state)
86+
t.Run("Allow unblocked CN by GeoIP",func(t*testing.T) {
87+
req:=httptest.NewRequest("GET",testURL,nil)
88+
req.RemoteAddr=aliCNIP
8989

90-
// Verify that the request was blocked
91-
assert.True(t,state.Blocked,"Request should be blocked")
92-
assert.Equal(t,http.StatusForbidden,w.Code,"Expected status code 403")
93-
assert.Contains(t,w.Body.String(),"Access Denied","Response body should contain 'Access Denied'")
90+
// Process the request in Phase 1
91+
middleware.handlePhase(w,req,1,state)
92+
assert.False(t,state.Blocked,"Request should be allowed")
93+
})
94+
95+
t.Run("Block US IP by GeoIP",func(t*testing.T) {
96+
req:=httptest.NewRequest("GET",testURL,nil)
97+
req.RemoteAddr=googleUSIP
98+
99+
// Process the request in Phase 1
100+
middleware.handlePhase(w,req,1,state)
101+
102+
// Verify that the request was blocked
103+
assert.True(t,state.Blocked,"Request should be blocked")
104+
assert.Equal(t,http.StatusForbidden,w.Code,"Expected status code 403")
105+
assert.Contains(t,w.Body.String(),"Access Denied","Response body should contain 'Access Denied'")
106+
})
94107
}
95108

96109
funcTestBlockedRequestPhase1_IPBlocking(t*testing.T) {
@@ -133,11 +146,11 @@ func TestBlockedRequestPhase1_IPBlocking(t *testing.T) {
133146
CustomResponses:customResponse,
134147
}
135148

136-
req0:=httptest.NewRequest("GET",testURL,nil)
137-
req0.RemoteAddr="192.168.1.1"
149+
req:=httptest.NewRequest("GET",testURL,nil)
150+
req.RemoteAddr="192.168.1.1"
138151

139152
// Process the request in Phase 1
140-
middleware.handlePhase(w,req0,1,state)
153+
middleware.handlePhase(w,req,1,state)
141154

142155
// Verify that the request was blocked
143156
assert.True(t,state.Blocked,"Request should be blocked")

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp