@@ -382,6 +382,36 @@ public function testShouldParseExpectedNumberOfMultipleDsns()
382
382
$ this ->assertCount (3 , $ dsns );
383
383
}
384
384
385
+ public function testShouldParseDsnWithOnlyUser ()
386
+ {
387
+ $ dsn = Dsn::parseFirst ('foo://user@host ' );
388
+
389
+ $ this ->assertSame ('user ' , $ dsn ->getUser ());
390
+ $ this ->assertNull ($ dsn ->getPassword ());
391
+ $ this ->assertSame ('foo ' , $ dsn ->getScheme ());
392
+ $ this ->assertSame ('host ' , $ dsn ->getHost ());
393
+ }
394
+
395
+ public function testShouldUrlEncodeUser ()
396
+ {
397
+ $ dsn = Dsn::parseFirst ('foo://us%3Aer@host ' );
398
+
399
+ $ this ->assertSame ('us:er ' , $ dsn ->getUser ());
400
+ $ this ->assertNull ($ dsn ->getPassword ());
401
+ $ this ->assertSame ('foo ' , $ dsn ->getScheme ());
402
+ $ this ->assertSame ('host ' , $ dsn ->getHost ());
403
+ }
404
+
405
+ public function testShouldUrlEncodePassword ()
406
+ {
407
+ $ dsn = Dsn::parseFirst ('foo://user:pass%3Aword@host ' );
408
+
409
+ $ this ->assertSame ('user ' , $ dsn ->getUser ());
410
+ $ this ->assertSame ('pass:word ' , $ dsn ->getPassword ());
411
+ $ this ->assertSame ('foo ' , $ dsn ->getScheme ());
412
+ $ this ->assertSame ('host ' , $ dsn ->getHost ());
413
+ }
414
+
385
415
public static function provideSchemes ()
386
416
{
387
417
yield [': ' , '' , '' , []];
0 commit comments