@@ -2,23 +2,25 @@ var HostedGitInfo = require('../')
2
2
3
3
var tap = require ( 'tap' )
4
4
var url = require ( 'url' )
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%3Aword@github.com/npm/hosted-git-info.git' )
8
- tap . equal ( parsedInfo . auth , 'user%3An%40me:p%40ss%3Aword' )
5
+ var parsedInfo
9
6
10
7
// 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%40me@github.com/npm/hosted-git-info.git' ) . auth , 'user%3An%40me' )
18
- tap . equal ( HostedGitInfo . fromUrl ( 'https://:p%40ss%3Aword@github.com/npm/hosted-git-info.git' ) . auth , ':p%40ss%3Aword' )
19
-
20
8
// don't try to url.URL parse it if url.URL is not available
21
9
// 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%3Aword@github.com/npm/xyz.git' )
24
- tap . equal ( parsedInfoNoURL . auth , 'user:n@me:p@ss:word' )
10
+ if ( typeof url . URL === 'function' ) {
11
+ // Auth credentials with special characters (colon and/or at-sign) should remain correctly escaped
12
+ parsedInfo = HostedGitInfo . fromUrl ( 'https://user%3An%40me:p%40ss%3Aword@github.com/npm/hosted-git-info.git' )
13
+ tap . equal ( parsedInfo . auth , 'user%3An%40me:p%40ss%3Aword' )
14
+
15
+ var parsedUrl = new url . URL ( parsedInfo . toString ( ) )
16
+ tap . equal ( parsedUrl . username , 'user%3An%40me' )
17
+ tap . equal ( parsedUrl . password , 'p%40ss%3Aword' )
18
+ tap . equal ( parsedUrl . hostname , 'github.com' )
19
+
20
+ // For full backwards-compatibility; support auth where only username or only password is provided
21
+ tap . equal ( HostedGitInfo . fromUrl ( 'https://user%3An%40me@github.com/npm/hosted-git-info.git' ) . auth , 'user%3An%40me' )
22
+ tap . equal ( HostedGitInfo . fromUrl ( 'https://:p%40ss%3Aword@github.com/npm/hosted-git-info.git' ) . auth , ':p%40ss%3Aword' )
23
+ } else {
24
+ parsedInfo = HostedGitInfo . fromUrl ( 'https://user%3An%40me:p%40ss%3Aword@github.com/npm/hosted-git-info.git' )
25
+ tap . equal ( parsedInfo . auth , 'user:n@me:p@ss:word' )
26
+ }
0 commit comments