1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved.
2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# found in the LICENSE file.
4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)import unittest
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)from telemetry.timeline import empty_timeline_data_importer
8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)from telemetry.timeline import tracing_timeline_data
9a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
10a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)class EmptyTimelineDataImporterTest(unittest.TestCase):
12a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  def testCanImportEmptyTimelineData(self):
13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    # We can import empty lists and empty string wrapped in subclasses of
14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    # TimelineData
15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    self.assertTrue(
16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        empty_timeline_data_importer.EmptyTimelineDataImporter.CanImport(
17a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)            tracing_timeline_data.TracingTimelineData([])))
18a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    self.assertTrue(
19a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        empty_timeline_data_importer.EmptyTimelineDataImporter.CanImport(
20a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)            tracing_timeline_data.TracingTimelineData('')))
21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  def testCannotImportNonEmptyTimelineData(self):
23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    # We can't import non-empty TimelineData objects
24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    self.assertFalse(
25a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        empty_timeline_data_importer.EmptyTimelineDataImporter.CanImport(
26a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)            tracing_timeline_data.TracingTimelineData([1,2,3])))
27a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
28a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  def testCannotImportEmptyRawData(self):
29a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    # We can't import raw data (not wrapped in a TimelineData object)
30a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    self.assertFalse(
31a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        empty_timeline_data_importer.EmptyTimelineDataImporter.CanImport([]))
32a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    self.assertFalse(
33a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)        empty_timeline_data_importer.EmptyTimelineDataImporter.CanImport(''))
34