15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#!/usr/bin/env python
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved.
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file.
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import os
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import sys
85d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)import posixpath
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import unittest
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)from extensions_paths import SERVER2
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)from local_file_system import LocalFileSystem
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class LocalFileSystemTest(unittest.TestCase):
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  def setUp(self):
175d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    self._file_system = LocalFileSystem.Create(
185d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)        SERVER2, 'test_data', 'file_system/')
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  def testReadFiles(self):
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    expected = {
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'test1.txt': 'test1\n',
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'test2.txt': 'test2\n',
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      'test3.txt': 'test3\n',
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    }
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    self.assertEqual(
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        expected,
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)        self._file_system.Read(['test1.txt', 'test2.txt', 'test3.txt']).Get())
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  def testListDir(self):
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    expected = ['dir/']
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    for i in range(7):
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)      expected.append('file%d.html' % i)
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    self.assertEqual(expected,
354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)                     sorted(self._file_system.ReadSingle('list/').Get()))
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)if __name__ == '__main__':
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  unittest.main()
40