1# Copyright (c) 2012 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
5"""Common paths for pyauto tests."""
6
7import os
8import sys
9
10
11def GetSourceDir():
12  """Returns src/ directory."""
13  script_dir = os.path.abspath(os.path.dirname(__file__))
14  return os.path.join(script_dir, os.pardir, os.pardir, os.pardir)
15
16
17def GetThirdPartyDir():
18  """Returns src/third_party directory."""
19  return os.path.join(GetSourceDir(), 'third_party')
20
21
22def GetBuildDirs():
23  """Returns list of possible build directories."""
24  # List of dirs that can contain a Debug/Release build.
25  outer_dirs = {
26      'linux2': ['out', 'sconsbuild'],
27      'linux3': ['out', 'sconsbuild'],
28      'darwin': ['out', 'xcodebuild'],
29      'win32':  ['chrome', 'build', 'out'],
30      'cygwin': ['chrome'],
31  }.get(sys.platform, [])
32  src_dir = GetSourceDir()
33  build_dirs = []
34  for dir in outer_dirs:
35    build_dirs += [os.path.join(src_dir, dir, 'Debug')]
36    build_dirs += [os.path.join(src_dir, dir, 'Release')]
37  return build_dirs
38
39
40def GetChromeDriverExe():
41  """Returns path to ChromeDriver executable, or None if cannot be found."""
42  exe_name = 'chromedriver'
43  if sys.platform == 'win32':
44    exe_name += '.exe'
45
46  import pyautolib
47  dir = os.path.dirname(pyautolib.__file__)
48  exe = os.path.join(dir, exe_name)
49  if os.path.exists(exe):
50    return exe
51  return None
52