@@ -101,3 +101,53 @@ func TestSettingRegion(t *testing.T) {
101
101
t .Errorf ("method.region = %s; expected %s" , method .region , expected )
102
102
}
103
103
}
104
+
105
+ type locTest struct {
106
+ url string
107
+ accessKey string
108
+ accessKeySecret string
109
+ }
110
+
111
+ var locTests = []locTest {
112
+ {
113
+ "s3://fake-access-key-id:fake-access-key-secret@s3.amazonaws.com/apt-repo-bucket/apt/generic/python-bernhard_0.2.3-1_all.deb" ,
114
+ "fake-access-key-id" ,
115
+ "fake-access-key-secret" ,
116
+ },
117
+ {
118
+ "s3://fake-ac/cess-key-id:fake-ac/cess-key-secret@s3.amazonaws.com/apt-repo-bucket/apt/generic/python-bernhard_0.2.3-1_all.deb" ,
119
+ "fake-ac/cess-key-id" ,
120
+ "fake-ac/cess-key-secret" , // secret contains a forward slash
121
+ },
122
+ {
123
+ "s3://fake-ac%2Fcess-key-id:fake-ac%2Fcess-key-secret@s3.amazonaws.com/apt-repo-bucket/apt/generic/python-bernhard_0.2.3-1_all.deb" ,
124
+ "fake-ac/cess-key-id" , // access key contains a forward slash that was encoded as %2F in the original url
125
+ "fake-ac/cess-key-secret" , // secret contains a forward slash that was encoded as %2F in the original url
126
+ },
127
+ {
128
+ "s3://fake-access-key-id:@s3.amazonaws.com/apt-repo-bucket/apt/generic/python-bernhard_0.2.3-1_all.deb" ,
129
+ "fake-access-key-id" ,
130
+ "" , // secret is blank
131
+ },
132
+ {
133
+ "s3://:fake-access-key-secret@s3.amazonaws.com/apt-repo-bucket/apt/generic/python-bernhard_0.2.3-1_all.deb" ,
134
+ "" , // access key is blank
135
+ "fake-access-key-secret" ,
136
+ },
137
+ }
138
+
139
+ func TestCreateLocation (t * testing.T ) {
140
+ for _ , lt := range locTests {
141
+ l , err := newLocation (lt .url , "s3.amazonaws.com" )
142
+ if err != nil {
143
+ t .Fatalf ("unexpected error: %v" , err )
144
+ }
145
+ if l .uri .User .Username () != lt .accessKey {
146
+ t .Errorf ("unexpected accessKey: got %s, want %s" , l .uri .User .Username (), lt .accessKey )
147
+ }
148
+ pass , _ := l .uri .User .Password ()
149
+ if pass != lt .accessKeySecret {
150
+ t .Errorf ("unexpected accessKeySecret: got %s, want %s" , pass , lt .accessKeySecret )
151
+ }
152
+ }
153
+ }
0 commit comments