# Protocol Buffers - Google's data interchange format # Copyright 2008 Google Inc. All rights reserved. # # Use of this source code is governed by a BSD-style # license that can be found in the LICENSE file or at # https://developers.google.com/open-source/licenses/bsd """Tests for google.protobuf.text_encoding.""" import unittest from google.protobuf import text_encoding TEST_VALUES = [ ("foo\\rbar\\nbaz\\t", "foo\\rbar\\nbaz\\t", b"foo\rbar\nbaz\t"), ( '\\\'full of \\"sound\\" and \\"fury\\"\\\'', '\\\'full of \\"sound\\" and \\"fury\\"\\\'', b'\'full of "sound" and "fury"\'', ), ( "signi\\\\fying\\\\ nothing\\\\", "signi\\\\fying\\\\ nothing\\\\", b"signi\\fying\\ nothing\\", ), ( "\\010\\t\\n\\013\\014\\r", "\\010\\t\\n\\013\\014\\r", b"\010\011\012\013\014\015", ), ] class TextEncodingTestCase(unittest.TestCase): def testCEscape(self): for escaped, escaped_utf8, unescaped in TEST_VALUES: self.assertEqual(escaped, text_encoding.CEscape(unescaped, as_utf8=False)) self.assertEqual( escaped_utf8, text_encoding.CEscape(unescaped, as_utf8=True) ) def testCUnescape(self): for escaped, escaped_utf8, unescaped in TEST_VALUES: self.assertEqual(unescaped, text_encoding.CUnescape(escaped)) self.assertEqual(unescaped, text_encoding.CUnescape(escaped_utf8)) if __name__ == "__main__": unittest.main()