blob: a920693a1474a6dd5861d95b6672e7ebc1efa3ba [file] [log] [blame]
#!/usr/bin/env python
# Copyright (c) 2016 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
'''Unit tests for grit.format.gzip_string'''
import gzip
import io
import os
import sys
if __name__ == '__main__':
sys.path.append(os.path.join(os.path.dirname(__file__), '../..'))
import unittest
from grit.format import gzip_string
class FormatGzipStringUnittest(unittest.TestCase):
def testGzipStringRsyncable(self):
# Can only test the rsyncable version on platforms which support rsyncable,
# which at the moment is Linux.
if sys.platform == 'linux2':
header_begin = ('\x1f\x8b') # gzip first two bytes
input = ('TEST STRING STARTING NOW'
'continuing'
'<even more>'
'<finished NOW>')
compressed = gzip_string.GzipStringRsyncable(input)
self.failUnless(header_begin == compressed[:2])
compressed_file = io.BytesIO()
compressed_file.write(compressed)
compressed_file.seek(0)
with gzip.GzipFile(mode='rb', fileobj=compressed_file) as f:
output = f.read()
self.failUnless(output == input)
def testGzipString(self):
header_begin = '\x1f\x8b' # gzip first two bytes
input = ('TEST STRING STARTING NOW'
'continuing'
'<even more>'
'<finished NOW>')
compressed = gzip_string.GzipString(input)
self.failUnless(header_begin == compressed[:2])
compressed_file = io.BytesIO()
compressed_file.write(compressed)
compressed_file.seek(0)
with gzip.GzipFile(mode='rb', fileobj=compressed_file) as f:
output = f.read()
self.failUnless(output == input)
if __name__ == '__main__':
unittest.main()