diff options
Diffstat (limited to 'test/test_utils.py')
| -rw-r--r-- | test/test_utils.py | 24 | 
1 files changed, 24 insertions, 0 deletions
| diff --git a/test/test_utils.py b/test/test_utils.py index 19c9ba7f8..19f9fce20 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -44,6 +44,7 @@ from youtube_dl.utils import (      limit_length,      escape_rfc3986,      escape_url, +    js_to_json,      get_filesystem_encoding,      compat_getenv,      compat_expanduser, @@ -334,6 +335,29 @@ class TestUtil(unittest.TestCase):          )          self.assertEqual(escape_url('http://vimeo.com/56015672#at=0'), 'http://vimeo.com/56015672#at=0') +    def test_js_to_json_realworld(self): +        inp = '''{ +            'clip':{'provider':'pseudo'} +        }''' +        self.assertEqual(js_to_json(inp), '''{ +            "clip":{"provider":"pseudo"} +        }''') +        json.loads(js_to_json(inp)) + +        inp = '''{ +            'playlist':[{'controls':{'all':null}}] +        }''' +        self.assertEqual(js_to_json(inp), '''{ +            "playlist":[{"controls":{"all":null}}] +        }''') + +    def test_js_to_json_edgecases(self): +        on = js_to_json("{abc_def:'1\\'\\\\2\\\\\\'3\"4'}") +        self.assertEqual(json.loads(on), {"abc_def": "1'\\2\\'3\"4"}) + +        on = js_to_json('{"abc": true}') +        self.assertEqual(json.loads(on), {'abc': True}) +      def test_compat_getenv(self):          test_str = 'ัะตัั'          os.environ['YOUTUBE-DL-TEST'] = test_str.encode(get_filesystem_encoding()) | 
