| OLD | NEW | 
|   1 # This file is part of the Adblock Plus web scripts, |   1 # This file is part of the Adblock Plus web scripts, | 
|   2 # Copyright (C) 2006-2016 Eyeo GmbH |   2 # Copyright (C) 2006-2016 Eyeo GmbH | 
|   3 # |   3 # | 
|   4 # Adblock Plus is free software: you can redistribute it and/or modify |   4 # Adblock Plus is free software: you can redistribute it and/or modify | 
|   5 # it under the terms of the GNU General Public License version 3 as |   5 # it under the terms of the GNU General Public License version 3 as | 
|   6 # published by the Free Software Foundation. |   6 # published by the Free Software Foundation. | 
|   7 # |   7 # | 
|   8 # Adblock Plus is distributed in the hope that it will be useful, |   8 # Adblock Plus is distributed in the hope that it will be useful, | 
|   9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |   9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |  10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  11 # GNU General Public License for more details. |  11 # GNU General Public License for more details. | 
|  12 # |  12 # | 
|  13 # You should have received a copy of the GNU General Public License |  13 # You should have received a copy of the GNU General Public License | 
|  14 # along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. |  14 # along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
|  15  |  15  | 
|  16 import unittest |  16 import unittest | 
|  17 import re |  17 import re | 
|  18 import sitescripts.stats.common as common |  18 import sitescripts.stats.common as common | 
|  19  |  19  | 
|  20  |  20  | 
|  21 class Test(unittest.TestCase): |  21 class Test(unittest.TestCase): | 
|  22     longMessage = True |  22     longMessage = True | 
|  23     maxDiff = None |  23     maxDiff = None | 
|  24  |  24  | 
|  25     def test_fileencoding(self): |  25     def test_fileencoding(self): | 
|  26         tests = [ |  26         tests = [ | 
|  27             ("foo_bar", True), |  27             ('foo_bar', True), | 
|  28             ("1234.txt", True), |  28             ('1234.txt', True), | 
|  29             ("xYz.DAT", True), |  29             ('xYz.DAT', True), | 
|  30             ("foo/bar.txt", False), |  30             ('foo/bar.txt', False), | 
|  31             ("foo/bar+bas-xyz.txt", False), |  31             ('foo/bar+bas-xyz.txt', False), | 
|  32             (u"foo\u1234-bar\u4321", False), |  32             (u'foo\u1234-bar\u4321', False), | 
|  33             ("foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar
    foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfo
    obarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoob
    arfoobarfoobar", u"foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarf
    oobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoo
    barfoobar\u2026") |  33             ('foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobar
    foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfo
    obarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoob
    arfoobarfoobar', u'foobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarf
    oobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoobarfoo
    barfoobar\u2026') | 
|  34         ] |  34         ] | 
|  35         for name, expect_identical in tests: |  35         for name, expect_identical in tests: | 
|  36             path = common.filename_encode(name) |  36             path = common.filename_encode(name) | 
|  37             if expect_identical is True: |  37             if expect_identical is True: | 
|  38                 self.assertEqual(path, name, "Encoding '%s' shouldn't change str
    ing" % name) |  38                 self.assertEqual(path, name, "Encoding '%s' shouldn't change str
    ing" % name) | 
|  39             else: |  39             else: | 
|  40                 self.assertTrue(re.match(r"^[\w\.\-]*$", path), "Encoding '%s' s
    hould replace all special characters" % name) |  40                 self.assertTrue(re.match(r'^[\w\.\-]*$', path), "Encoding '%s' s
    hould replace all special characters" % name) | 
|  41  |  41  | 
|  42             if isinstance(expect_identical, basestring): |  42             if isinstance(expect_identical, basestring): | 
|  43                 self.assertEqual(common.filename_decode(path), expect_identical,
     "Encoding and decoding '%s' should produce a truncated string as result" % name
    ) |  43                 self.assertEqual(common.filename_decode(path), expect_identical,
     "Encoding and decoding '%s' should produce a truncated string as result" % name
    ) | 
|  44             else: |  44             else: | 
|  45                 self.assertEqual(common.filename_decode(path), name, "Encoding a
    nd decoding '%s' should produce the original string" % name) |  45                 self.assertEqual(common.filename_decode(path), name, "Encoding a
    nd decoding '%s' should produce the original string" % name) | 
|  46  |  46  | 
|  47 if __name__ == '__main__': |  47 if __name__ == '__main__': | 
|  48     unittest.main() |  48     unittest.main() | 
| OLD | NEW |