new_contents: # Copyright 2016 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 os
  import unittest
  
  from systrace import decorators
  from systrace import update_systrace_trace_viewer
  
  SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
  STABLE_VIEWER_PATH = os.path.join(SCRIPT_DIR, 'systrace_trace_viewer.html')
  
  # Tests presence and content of static HTML files used not only for Python
  # systrace capture, but also Java-based capture in the android SDK tools.
  #
  # NOTE: changes to this file should typically be accompanied by changes to the
  # Android SDK's method of systrace capture.
  class MonitorTest(unittest.TestCase):
  
    @decorators.HostOnlyTest
    def test_systrace_trace_viewer(self):
      self.assertEqual(STABLE_VIEWER_PATH,
        update_systrace_trace_viewer.SYSTRACE_TRACE_VIEWER_HTML_FILE)
  
      update_systrace_trace_viewer.update(force_update=True)
  
      with open(STABLE_VIEWER_PATH) as f:
        content = f.read().strip()
  
        # expect big html file
        self.assertGreater(5 * 1024 * 1024, len(content))
        self.assertEqual('<', content[0])
      os.remove(f.name)
  
  
    @decorators.HostOnlyTest
    def test_prefix(self):
      with open(os.path.join(SCRIPT_DIR, 'prefix.html')) as f:
        content = f.read().strip()
  
        self.assertTrue("<html>" in content)
        self.assertTrue("<title>Android System Trace</title>" in content)
        self.assertTrue("{{SYSTRACE_TRACE_VIEWER_HTML}}" in content)
  
  
    @decorators.HostOnlyTest
    def test_suffix(self):
      with open(os.path.join(SCRIPT_DIR, 'suffix.html')) as f:
        content = f.read().strip()
  
        self.assertTrue("</html>" in content)
  
subject: Validate files needed by Android tools