• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?php
2# Copyright (C) 2010 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16###############################################################################
17
18# Show the source of the test.
19#
20# Usage:
21#   view_source.php?src=PATH
22#   where
23#     PATH - relative path in the LayoutTests dir
24
25  # Global variables
26  # The server document root is LayoutTests/http/tests. See run_apache2.py.
27  $rootDir = realpath($_SERVER['DOCUMENT_ROOT'] . '..' . DIRECTORY_SEPARATOR . '..');
28
29  function getAbsolutePath($relPath) {
30    global $rootDir;
31    return $rootDir . DIRECTORY_SEPARATOR . $relPath;
32  }
33
34  function main() {
35    global $rootDir;
36
37    # Very primitive check if path tries to go above DOCUMENT_ROOT or is absolute
38    if (strpos($_GET['src'], "..") !== False ||
39        substr($_GET['src'], 0, 1) == DIRECTORY_SEPARATOR) {
40      return;
41    }
42
43    # If we don't want realpath to append any prefixes we need to pass it an absolute path
44    $src = realpath(getAbsolutePath($_GET['src']));
45
46    echo "<html><body>";
47    # TODO: Add link following and syntax highlighting for html and js.
48    highlight_string(file_get_contents($src));
49    echo "</body></html>";
50  }
51
52  main();
53?>
54