# Copyright 2018 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest

from core import benchmark_utils

from telemetry import page
from telemetry import story
from telemetry import benchmark as benchmark_module


class ThousandAndOneStoriesBenchmark(benchmark_module.Benchmark):
  def CreateStorySet(self, options):
    del options  # unused
    story_set = story.StorySet()
    for i in range(1001):
      story_set.AddStory(
        page.Page(
          url='file://does-not-exist.html',
          name='story-number-%i' % i,
          page_set=story_set,
        )
      )
    return story_set


class BenchmarkUtilsUnittest(unittest.TestCase):
  def testGetBenchmarkStoryNamesOrdering(self):
    story_names = benchmark_utils.GetBenchmarkStoryNames(
      ThousandAndOneStoriesBenchmark()
    )
    self.assertEqual(story_names, ['story-number-%i' % i for i in range(1001)])
