Skip to content

Commit fa59ddb

Browse files
authored
Merge pull request #4 from marklonquist/master
fixes issues with percent-encoding in query
2 parents 6e9d88f + 53609a3 commit fa59ddb

File tree

2 files changed

+43
-1
lines changed

2 files changed

+43
-1
lines changed

admob/main.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,10 @@ func Verify(cbUrl *url.URL) (err error) {
114114
return err
115115
}
116116

117-
rawQuery := cbUrl.RawQuery
117+
rawQuery, err := url.QueryUnescape(cbUrl.RawQuery)
118+
if err != nil {
119+
return err
120+
}
118121
if LogEnabled {
119122
log.Printf("admob.Verify - url.RawQuery: %s", rawQuery)
120123
}

admob_test.go

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package main
2+
3+
import (
4+
"net/url"
5+
"testing"
6+
7+
"github.com/hiyali/go-lib-ssv/admob"
8+
)
9+
10+
const (
11+
admobTestCBWithHashDataAndEncodedSpace = "https://api.example.com/callback?ad_network=4970775877303683148&ad_unit=3543424263&reward_amount=1&reward_item=Key%20Doubler&timestamp=1584428655496&transaction_id=0280088a3d615a1a28929ba7c00861d4&user_id=KK1nqvkZ4tQDon92LrStOXPJbx93&signature=MEUCIQChVBUhVph0ymVFqHzdld9PWZitruPy2Q-OELQZH9g35wIgO3cVUChofhVrlSXZodlQFQM5vIvf5dGLqBAGXz6AmaE&key_id=3335741209"
12+
admobTestCBWithHashData = "https://api.example.com/callback?ad_network=4970775877303683148&ad_unit=3543424263&reward_amount=1&reward_item=Key Doubler&timestamp=1584428655496&transaction_id=0280088a3d615a1a28929ba7c00861d4&user_id=KK1nqvkZ4tQDon92LrStOXPJbx93&signature=MEUCIQChVBUhVph0ymVFqHzdld9PWZitruPy2Q-OELQZH9g35wIgO3cVUChofhVrlSXZodlQFQM5vIvf5dGLqBAGXz6AmaE&key_id=3335741209"
13+
)
14+
15+
func TestAdmobVerifyWithEscapedSpace(t *testing.T) {
16+
testUrl, err := url.Parse(admobTestCBWithHashDataAndEncodedSpace)
17+
if err != nil {
18+
t.Errorf("url.Parse(%s) - err: %v", admobTestCBWithHashDataAndEncodedSpace, err)
19+
}
20+
21+
admob.LogEnabled = true
22+
23+
if err = admob.Verify(testUrl); err != nil {
24+
t.Errorf("Verify(%v) - url.RawQuery: %s, err: %v", testUrl, testUrl.RawQuery, err)
25+
}
26+
}
27+
28+
func TestAdmobVerifyWithoutEscapedSpace(t *testing.T) {
29+
testUrl, err := url.Parse(admobTestCBWithHashData)
30+
if err != nil {
31+
t.Errorf("url.Parse(%s) - err: %v", admobTestCBWithHashData, err)
32+
}
33+
34+
admob.LogEnabled = true
35+
36+
if err = admob.Verify(testUrl); err != nil {
37+
t.Errorf("Verify(%v) - url.RawQuery: %s, err: %v", testUrl, testUrl.RawQuery, err)
38+
}
39+
}

0 commit comments

Comments
 (0)