@@ -3,22 +3,23 @@ var HostedGitInfo = require('../')
3
3
var tap = require ( 'tap' )
4
4
var url = require ( 'url' )
5
5
6
- // Auth credentials with special characters (colon and/or at-sign) should remain correctly escaped
7
- var parsedInfo = HostedGitInfo . fromUrl ( 'https://user%3An%40me:p%40ss%[email protected] /npm/hosted-git-info.git' )
8
- tap . equal ( parsedInfo . auth , 'user%3An%40me:p%40ss%3Aword' )
9
-
10
6
// Node.js' built-in `url` module should be able to parse the resulting url
11
- var parsedUrl = new url . URL ( parsedInfo . toString ( ) )
12
- tap . equal ( parsedUrl . username , 'user%3An%40me' )
13
- tap . equal ( parsedUrl . password , 'p%40ss%3Aword' )
14
- tap . equal ( parsedUrl . hostname , 'github.com' )
15
-
16
- // For full backwards-compatibility; support auth where only username or only password is provided
17
- tap . equal ( HostedGitInfo . fromUrl ( 'https://user%3An%[email protected] /npm/hosted-git-info.git' ) . auth , 'user%3An%40me' )
18
- tap . equal ( HostedGitInfo . fromUrl ( 'https://:p%40ss%[email protected] /npm/hosted-git-info.git' ) . auth , ':p%40ss%3Aword' )
19
-
20
7
// don't try to url.URL parse it if url.URL is not available
21
8
// ie, node <6.13. This is broken, but at least it doesn't throw.
22
- url . URL = null
23
- var parsedInfoNoURL = HostedGitInfo . fromUrl ( 'https://user%3An%40me:p%40ss%[email protected] /npm/xyz.git' )
24
- tap . equal ( parsedInfoNoURL . auth , 'user:n@me:p@ss:word' )
9
+ if ( typeof url . URL === 'function' ) {
10
+ // Auth credentials with special characters (colon and/or at-sign) should remain correctly escaped
11
+ var parsedInfo = HostedGitInfo . fromUrl ( 'https://user%3An%40me:p%40ss%[email protected] /npm/hosted-git-info.git' )
12
+ tap . equal ( parsedInfo . auth , 'user%3An%40me:p%40ss%3Aword' )
13
+
14
+ var parsedUrl = new url . URL ( parsedInfo . toString ( ) )
15
+ tap . equal ( parsedUrl . username , 'user%3An%40me' )
16
+ tap . equal ( parsedUrl . password , 'p%40ss%3Aword' )
17
+ tap . equal ( parsedUrl . hostname , 'github.com' )
18
+
19
+ // For full backwards-compatibility; support auth where only username or only password is provided
20
+ tap . equal ( HostedGitInfo . fromUrl ( 'https://user%3An%[email protected] /npm/hosted-git-info.git' ) . auth , 'user%3An%40me' )
21
+ tap . equal ( HostedGitInfo . fromUrl ( 'https://:p%40ss%[email protected] /npm/hosted-git-info.git' ) . auth , ':p%40ss%3Aword' )
22
+ } else {
23
+ var parsedInfoNoURL = HostedGitInfo . fromUrl ( 'https://user%3An%40me:p%40ss%[email protected] /npm/xyz.git' )
24
+ tap . equal ( parsedInfoNoURL . auth , 'user:n@me:p@ss:word' )
25
+ }
0 commit comments