1# Copyright 2013 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import os 6import tempfile 7 8from measurements import session_restore 9from measurements import session_restore_with_url 10import page_sets 11from profile_creators import small_profile_creator 12from telemetry import test 13from telemetry.page import profile_generator 14 15 16class _SessionRestoreTest(test.Test): 17 18 @classmethod 19 def ProcessCommandLineArgs(cls, parser, args): 20 super(_SessionRestoreTest, cls).ProcessCommandLineArgs(parser, args) 21 profile_type = 'small_profile' 22 if not args.browser_options.profile_dir: 23 profile_dir = os.path.join(tempfile.gettempdir(), profile_type) 24 if not os.path.exists(profile_dir): 25 new_args = args.Copy() 26 new_args.pageset_repeat = 1 27 new_args.output_dir = profile_dir 28 profile_generator.GenerateProfiles( 29 small_profile_creator.SmallProfileCreator, profile_type, new_args) 30 args.browser_options.profile_dir = os.path.join(profile_dir, profile_type) 31 32 33@test.Disabled('android', 'linux') # crbug.com/325479, crbug.com/381990 34class SessionRestoreColdTypical25(_SessionRestoreTest): 35 tag = 'cold' 36 test = session_restore.SessionRestore 37 page_set = page_sets.Typical25PageSet 38 options = {'cold': True, 39 'pageset_repeat': 5} 40 41 42@test.Disabled('android', 'linux') # crbug.com/325479, crbug.com/381990 43class SessionRestoreWarmTypical25(_SessionRestoreTest): 44 tag = 'warm' 45 test = session_restore.SessionRestore 46 page_set = page_sets.Typical25PageSet 47 options = {'warm': True, 48 'pageset_repeat': 20} 49 50 51@test.Disabled('android', 'linux') # crbug.com/325479, crbug.com/381990 52class SessionRestoreWithUrlCold(_SessionRestoreTest): 53 """Measure Chrome cold session restore with startup URLs.""" 54 tag = 'cold' 55 test = session_restore_with_url.SessionRestoreWithUrl 56 page_set = page_sets.StartupPagesPageSet 57 options = {'cold': True, 58 'pageset_repeat': 5} 59 60 61@test.Disabled('android', 'linux') # crbug.com/325479, crbug.com/381990 62class SessionRestoreWithUrlWarm(_SessionRestoreTest): 63 """Measure Chrome warm session restore with startup URLs.""" 64 tag = 'warm' 65 test = session_restore_with_url.SessionRestoreWithUrl 66 page_set = page_sets.StartupPagesPageSet 67 options = {'warm': True, 68 'pageset_repeat': 10} 69