Index: tools/telemetry/telemetry/page_set_archive_info_unittest.py |
diff --git a/tools/telemetry/telemetry/page_set_archive_info_unittest.py b/tools/telemetry/telemetry/page_set_archive_info_unittest.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f7cf73852e3efdfef1bf73ff54a0b47fa7064c1d |
--- /dev/null |
+++ b/tools/telemetry/telemetry/page_set_archive_info_unittest.py |
@@ -0,0 +1,58 @@ |
+# Copyright (c) 2012 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. |
+import json |
+import os |
+import unittest |
+ |
+from telemetry import page_set_archive_info |
+ |
+class MockPage(object): |
+ def __init__(self, url): |
+ self.url = url |
+ |
+url1 = 'http://www.foo.com/' |
+url2 = 'http://www.bar.com/' |
+url3 = 'http://www.baz.com/' |
+file1 = 'data_001.wpr' |
+file2 = 'data_002.wpr' |
+archive_info_contents = (""" |
+{ |
+"archives": { |
+ "%s": ["%s", "%s"], |
+ "%s": ["%s"] |
+} |
+} |
+""" % (file1, url1, url2, file2, url3)) |
+page1 = MockPage(url1) |
+page2 = MockPage(url2) |
+page3 = MockPage(url3) |
+ |
+class TestPageSetArchiveInfo(unittest.TestCase): |
+ def setUp(self): |
+ self.archive_info = page_set_archive_info.PageSetArchiveInfo( |
+ '/tmp/foo.json', '/tmp/pageset.json', json.loads(archive_info_contents)) |
+ |
+ def testReadingArchiveInfo(self): |
+ self.assertEquals(file1, self.archive_info.WprFileForPage(page1)) |
+ self.assertEquals(file1, self.archive_info.WprFileForPage(page2)) |
+ self.assertEquals(file2, self.archive_info.WprFileForPage(page3)) |
+ |
+ def testModifications(self): |
+ new_file_1 = 'data_003.wpr' |
+ filename = self.archive_info.AddNewRecording([page2]) |
+ self.assertEquals(filename, '/tmp/' + new_file_1) |
+ self.assertEquals(file1, self.archive_info.WprFileForPage(page1)) |
+ self.assertEquals(new_file_1, self.archive_info.WprFileForPage(page2)) |
+ self.assertEquals(file2, self.archive_info.WprFileForPage(page3)) |
+ self.assertEquals([], self.archive_info.AbandonedWprFiles()) |
+ |
+ new_file_2 = 'data_004.wpr' |
+ filename = self.archive_info.AddNewRecording([page3]) |
+ self.assertEquals(filename, '/tmp/' + new_file_2) |
+ self.assertEquals(file1, self.archive_info.WprFileForPage(page1)) |
+ self.assertEquals(new_file_1, self.archive_info.WprFileForPage(page2)) |
+ self.assertEquals(new_file_2, self.archive_info.WprFileForPage(page3)) |
+ files_to_remove = [os.path.basename(filename) |
+ for filename in self.archive_info.AbandonedWprFiles()] |
+ self.assertEquals([file2], files_to_remove) |