aboutsummaryrefslogtreecommitdiff
path: root/catapult/telemetry/telemetry/story/story_unittest.py
blob: 9bc18b56e9ec68bfc3c6e5a64d44840a84634460 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# Copyright 2014 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 unittest

from telemetry import story
from telemetry.story import shared_state


# pylint: disable=abstract-method
class SharedStateBar(shared_state.SharedState):
  pass


class StoryFoo(story.Story):
  def __init__(self, name='', tags=None):
    super(StoryFoo, self).__init__(
        SharedStateBar, name, tags)


class StoryTest(unittest.TestCase):
  def testStoriesHaveDifferentIds(self):
    s0 = story.Story(SharedStateBar, 'foo')
    s1 = story.Story(SharedStateBar, 'bar')
    self.assertNotEqual(s0.id, s1.id)

  def testNamelessStoryDisplayName(self):
    s = StoryFoo()
    self.assertEquals('StoryFoo', s.display_name)

  def testNamedStoryDisplayName(self):
    s = StoryFoo('Bar')
    self.assertEquals('Bar', s.display_name)

  def testStoryFileSafeName(self):
    s = StoryFoo('Foo Bar:Baz~0')
    self.assertEquals('Foo_Bar_Baz_0', s.file_safe_name)

  def testNamelessStoryAsDict(self):
    s = story.Story(SharedStateBar)
    s_dict = s.AsDict()
    self.assertEquals(s_dict['id'], s.id)
    self.assertNotIn('name', s_dict)

  def testNamedStoryAsDict(self):
    s = story.Story(SharedStateBar, 'Foo')
    s_dict = s.AsDict()
    self.assertEquals(s_dict['id'], s.id)
    self.assertEquals('Foo', s_dict['name'])

  def testMakeJavaScriptDeterministic(self):
    s = story.Story(SharedStateBar)
    self.assertTrue(s.make_javascript_deterministic)

    s = story.Story(SharedStateBar, make_javascript_deterministic=False)
    self.assertFalse(s.make_javascript_deterministic)

    s = story.Story(SharedStateBar, make_javascript_deterministic=True)
    self.assertTrue(s.make_javascript_deterministic)