@@ -184,17 +184,26 @@ test('libpq connection string building', function() {
184184 assert . equal ( subject . password , sourceConfig . password ) ;
185185 } ) ;
186186
187- test ( 'password contains weird characters' , function ( ) {
187+ test ( 'username or password contains weird characters' , function ( ) {
188188 var defaults = require ( '../../../lib/defaults' ) ;
189189 defaults . ssl = true ;
190- var strang = 'postgres ://my first name:is&%awesome!@localhost:9000' ;
190+ var strang = 'pg ://my f%irst name:is&%awesome!@localhost:9000' ;
191191 var subject = new ConnectionParameters ( strang ) ;
192- assert . equal ( subject . user , 'my first name' ) ;
192+ assert . equal ( subject . user , 'my f%irst name' ) ;
193193 assert . equal ( subject . password , 'is&%awesome!' ) ;
194194 assert . equal ( subject . host , 'localhost' ) ;
195195 assert . equal ( subject . ssl , true ) ;
196196 } ) ;
197197
198+ test ( "url is properly encoded" , function ( ) {
199+ var encoded = "pg://bi%25na%25%25ry%20:s%40f%23@localhost/%20u%2520rl" ;
200+ var subject = new ConnectionParameters ( encoded ) ;
201+ assert . equal ( subject . user , "bi%na%%ry " ) ;
202+ assert . equal ( subject . password , "s@f#" ) ;
203+ assert . equal ( subject . host , 'localhost' ) ;
204+ assert . equal ( subject . database , " u%20rl" ) ;
205+ } ) ;
206+
198207 test ( 'ssl is set on client' , function ( ) {
199208 var Client = require ( '../../../lib/client' )
200209 var defaults = require ( '../../../lib/defaults' ) ;
0 commit comments