Html程序  |  160行  |  5.7 KB

<!DOCTYPE HTML>
<html>
<!--
Copyright (c) 2012 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.
-->
<head>
<title>Selection Analysis Tests</title>
<script src="../base.js"></script>
</head>
<body>
  <script>
    base.require('unittest');
    base.require('test_utils');
    base.require('timeline_track_view');
    base.require('analysis.selection_analysis');
    base.require('analysis.test.analysis_test_support');
    base.requireStylesheet('analysis.test.analysis_test_support');
  </script>
  <script>
    'use strict';

    function testSelectionAnalysisWithSingleSlice() {
      var data = tracing.analysis.test.createReferenceData(true);

      var selection = new tracing.Selection();
      data.t1track.selectByTitle('f', selection);

      var analysis = new tracing.analysis.SelectionAnalysis();
      analysis.selection = selection;

      var selectionEl = analysis;
      var sliceSelectionEl = selectionEl.children[0];
      var singleSliceEl = sliceSelectionEl.children[0];

      assertEquals(true,
          analysis instanceof tracing.analysis.SelectionAnalysis);
      assertEquals(true, sliceSelectionEl instanceof
          tracing.analysis.SliceSelectionAnalysis);
      assertEquals(1, sliceSelectionEl.children.length);
      assertEquals(4, singleSliceEl.children.length);

      this.addHTMLOutput(undefined, analysis);
    }

    function testSelectionAnalysisWithSingleSliceArgsAndCategory() {
      var data = tracing.analysis.test.createReferenceData(true);

      var selection = new tracing.Selection();
      data.t1track.selectByTitle('D', selection);

      var analysis = new tracing.analysis.SelectionAnalysis();
      analysis.selection = selection;

      var selectionEl = analysis;
      var sliceSelectionEl = selectionEl.children[0];
      var singleSliceEl = sliceSelectionEl.children[0];
      var categoryEl = singleSliceEl.children[1];
      var argEl1 = singleSliceEl.children[5];
      var argEl2 = singleSliceEl.children[6];

      assertEquals(true,
          analysis instanceof tracing.analysis.SelectionAnalysis);
      assertEquals(true, sliceSelectionEl instanceof
          tracing.analysis.SliceSelectionAnalysis);
      assertEquals(true, singleSliceEl instanceof
          tracing.analysis.SingleSliceSelectionAnalysis);
      assertEquals(1, sliceSelectionEl.children.length);
      assertEquals(7, singleSliceEl.children.length);

      this.addHTMLOutput(undefined, analysis);
    }

    function testSelectionAnalysisWithSlicesAndCounters() {

      var data = tracing.analysis.test.createReferenceData(true);

      var selection = new tracing.Selection();
      data.t1track.selectByTitle('b', selection);
      selection.addCounterSample(data.ctr1track, data.ctr1track.counter, 0);

      var analysis = new tracing.analysis.SelectionAnalysis();
      analysis.selection = selection;

      var selectionEl = analysis;
      var sliceSelectionEl = selectionEl.children[0];
      var counterSelectionEl = selectionEl.children[1];

      assertEquals(true, sliceSelectionEl instanceof
          tracing.analysis.SliceSelectionAnalysis);
      assertEquals(true, counterSelectionEl instanceof
          tracing.analysis.CounterSelectionAnalysis);
      assertEquals(2, selectionEl.children.length);
      assertEquals(3, sliceSelectionEl.children.length);
      assertEquals(2, counterSelectionEl.children.length);

      this.addHTMLOutput(undefined, analysis);

    }

    function testSelectionAnalysisWithSingleCounter() {
      var data = tracing.analysis.test.createReferenceData(true);

      var selection = new tracing.Selection();
      selection.addCounterSample(data.ctr1track, data.ctr1track.counter, 0);

      var analysis = new tracing.analysis.SelectionAnalysis();
      analysis.selection = selection;

      var selectionEl = analysis;
      var counterSelectionEl = selectionEl.children[0];
      var singleCounterEl = counterSelectionEl.children[1];

      assertEquals(true,
          analysis instanceof tracing.analysis.SelectionAnalysis);
      assertEquals(true, counterSelectionEl instanceof
          tracing.analysis.CounterSelectionAnalysis);
      assertEquals(true, singleCounterEl instanceof
          tracing.analysis.SingleCounterSelectionAnalysis);
      assertEquals(2, counterSelectionEl.children.length);
      assertEquals(1, singleCounterEl.children.length);

      this.addHTMLOutput(undefined, analysis);
    }

    function testSelectionAnalysisWithMultipleCounters() {
      var data = tracing.analysis.test.createReferenceData(true);

      var selection = new tracing.Selection();
      selection.addCounterSample(data.ctr1track, data.ctr1track.counter, 0);
      selection.addCounterSample(data.ctr2track, data.ctr2track.counter, 3);

      var analysis = new tracing.analysis.SelectionAnalysis();
      analysis.selection = selection;

      var selectionEl = analysis;
      var counterSelectionEl = selectionEl.children[0];
      var singleCounterEl = counterSelectionEl.children[1];
      var singleCounterEl2 = counterSelectionEl.children[2];

      assertEquals(true,
          analysis instanceof tracing.analysis.SelectionAnalysis);
      assertEquals(true, counterSelectionEl instanceof
          tracing.analysis.CounterSelectionAnalysis);
      assertEquals(true, singleCounterEl instanceof
          tracing.analysis.SingleCounterSelectionAnalysis);
      assertEquals(true, singleCounterEl2 instanceof
          tracing.analysis.SingleCounterSelectionAnalysis);
      assertEquals(3, counterSelectionEl.children.length);
      assertEquals(1, singleCounterEl.children.length);
      assertEquals(1, singleCounterEl2.children.length);

      this.addHTMLOutput(undefined, analysis);
    }

  </script>
</body>
</html>