| #!/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() |