Code Search for Developers
 
 
  

statistics_observer_test.html from cruisecontrol at Krugle


Show statistics_observer_test.html syntax highlighted

<!--
/********************************************************************************
 * CruiseControl, a Continuous Integration Toolkit
 * Copyright (c) 2007, ThoughtWorks, Inc.
 * 200 E. Randolph, 25th Floor
 * Chicago, IL 60601 USA
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *     + Redistributions of source code must retain the above copyright
 *       notice, this list of conditions and the following disclaimer.
 *
 *     + Redistributions in binary form must reproduce the above
 *       copyright notice, this list of conditions and the following
 *       disclaimer in the documentation and/or other materials provided
 *       with the distribution.
 *
 *     + Neither the name of ThoughtWorks, Inc., CruiseControl, nor the
 *       names of its contributors may be used to endorse or promote
 *       products derived from this software without specific prior
 *       written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ********************************************************************************/
 --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>CCE Dashboard Tests</title>
<link rel="stylesheet" type="text/css" href="../css/jsUnitStyle.css">
<script language="JavaScript" type="text/javascript" src="../app/jsUnitCore.js"></script>
<script language="JavaScript" type="text/javascript" src="../app/jsUnitVersionCheck.js"></script>
<script language="JavaScript" type="text/javascript" src="../app/jsTestHelper.js"></script>
<script language="JavaScript" type="text/javascript" src="../compressed/all.js"></script>

<script language="JavaScript" type="text/javascript">
var statisticsObserver;

function setUp() {
	statisticsObserver  = new StatisticsObserver();

	$('statistics_passed').update('');
	$('statistics_failed').update('');
	$('statistics_building').update('');
	$('statistics_inactive').update('');
	$('statistics_total').update('');
	$('statistics_rate').update('');

}

function test_should_update_summary_infomation_accordingly() {
	var hash = $H({passed : 1, failed : 2, building : 1, inactive : '0', total : 4, rate : '25.0%'})
	statisticsObserver.update(hash);
	assertEquals('1', getFirstWord($('statistics_passed').innerHTML));
	assertEquals('2', getFirstWord($('statistics_failed').innerHTML));
	assertEquals('1', getFirstWord($('statistics_building').innerHTML));
	assertEquals('0', getFirstWord($('statistics_inactive').innerHTML));
	assertEquals('4', getFirstWord($('statistics_total').innerHTML));
	assertEquals('25.0%', getFirstWord($('statistics_rate').innerHTML));
}

function test_should_not_show_NAN_when_there_is_no_any_active_builds() {
	var hash = $H({passed : 0, failed : 0, building : 0, inactive : '1'})
	statisticsObserver.calculate(hash);
	assertEquals('0%', hash.rate);
}

function test_should_return_category_the_current_json_info() {
	json = passed_json('project1')
	var hash = $H({passed:0,failed:0,building:0,inactive:0})
	statisticsObserver.category(json, hash);
	assertEquals(1, hash['passed']);
}

function test_should_not_throw_any_exception() {
	var hash = $H({passed:0,failed:0,building:0,inactive:0})
	statisticsObserver.category(null, hash);
	assertEquals(0, hash['passed']);
}

function test_ignore_inactive() {
	json = inactive_json('project1')
	var hash = $H({passed:0,failed:0,building:0,inactive:0})
	statisticsObserver.category(json, hash);
	assertEquals(0, hash['inactive']);
}

function test_should_return_hash_contains_statistics_infos() {
	var hash = $H({passed:1, failed:1,building:1, inactive:1})
	statisticsObserver.calculate(hash);
	assertEquals(1, hash['passed']);
	assertEquals(1, hash['failed']);
	assertEquals(1, hash['building']);
	assertEquals(1, hash['inactive']);
	assertEquals(4, hash['total']);
	assertEquals('33%', hash['rate']);
}

function test_should_return_default_value_when_no_project_in_the_dashboard() {
	var hash = statisticsObserver.calculate($H({passed:0,failed:0,building:0,inactive:0}))
	assertEquals(0, hash['passed']);
	assertEquals(0, hash['failed']);
	assertEquals(0, hash['building']);
	assertEquals(0, hash['total']);
	assertEquals('0%', hash['rate']);
}

function test_should_return_amount_of_all_inactive_projects() {
	var statistics = $H({})
	statisticsObserver.inactive_projects(statistics);
	assertEquals(1, statistics['inactive']);
}


function test_ajax_periodical_refresh_dashboard_executer_oncomplete_should_NOT_invoke_functions_if_json_is_empty() {
	var hash = $H({passed : 1, failed : 2, building : 1, inactive : '0', total : 4, rate : '25.0%'})
	statisticsObserver.update(hash);

	assertEquals('1', getFirstWord($('statistics_passed').innerHTML));
	assertEquals('2', getFirstWord($('statistics_failed').innerHTML));
	assertEquals('1', getFirstWord($('statistics_building').innerHTML));
	assertEquals('0', getFirstWord($('statistics_inactive').innerHTML));
	assertEquals('4', getFirstWord($('statistics_total').innerHTML));
	assertEquals('25.0%', getFirstWord($('statistics_rate').innerHTML));
	
	statisticsObserver.notify([]);
	
	assertEquals('1', getFirstWord($('statistics_passed').innerHTML));
	assertEquals('2', getFirstWord($('statistics_failed').innerHTML));
	assertEquals('1', getFirstWord($('statistics_building').innerHTML));
	assertEquals('0', getFirstWord($('statistics_inactive').innerHTML));
	assertEquals('4', getFirstWord($('statistics_total').innerHTML));
	assertEquals('25.0%', getFirstWord($('statistics_rate').innerHTML));

	statisticsObserver.notify({ });
	
	assertEquals('1', getFirstWord($('statistics_passed').innerHTML));
	assertEquals('2', getFirstWord($('statistics_failed').innerHTML));
	assertEquals('1', getFirstWord($('statistics_building').innerHTML));
	assertEquals('0', getFirstWord($('statistics_inactive').innerHTML));
	assertEquals('4', getFirstWord($('statistics_total').innerHTML));
	assertEquals('25.0%', getFirstWord($('statistics_rate').innerHTML));
}

function getFirstWord(sentence) {
	return sentence.split(' ')[0];
}

</script>
</head>
<body>

<div class="projects_summary">
					   <div class="entry_set">
                        <div class="info total" id="statistics_total">$projectStatistics.total() project build(s)</div>
                        <div class="info passed" id="statistics_passed">$projectStatistics.passed() project build(s) succeeded</div>
                        <div class="info failed" id="statistics_failed">$projectStatistics.failed() project build(s) failed</div>
                        <div class="info building" id="statistics_building">$projectStatistics.building() project(s) building</div>
                        <div class="info inactive" id="statistics_inactive">$projectStatistics.inactive() project(s) inactive</div>
                        <div class="summary" id="statistics_rate">$projectStatistics.rate() of projects passing</div>
</div>
<div id="project name_bar" class="inactive bar round_corner"></div>

</body>
</html>




See more files for this project here

cruisecontrol

CruiseControl is a framework for a continuous build process. It includes, but is not limited to, plugins for email notification, Ant, and various source control tools. A web interface is provided to view the details of the current and previous builds.

Project homepage: http://sourceforge.net/projects/cruisecontrol
Programming language(s): Java,XML
License: other

  ajax_periodical_refresh_active_build_executer_test.html
  ajax_periodical_refresh_active_build_output_executer_oncomplete_test.html
  ajax_periodical_refresh_dashboard_executer_oncomplete_test.html
  ajax_periodical_refresh_dashboard_update_inactive_partial_links_test.htm
  ajax_periodical_refresh_dashboard_update_project_box_test.html
  ajax_refresh_active_build_commit_message_test.html
  ajax_tree_navigator_test.html
  ajax_update_icons_and_invoke_callback_function_test.html
  build_bar_observer_test.html
  build_detail_toggle_tab_content_test.html
  build_profile_observer_test.html
  build_profile_test.html
  cc_status_observer_test.html
  clean_text_node_test.html
  display_toolkit_test.html
  escape_project_name_test.html
  eval_timer_object_test.html
  evaluate_time_to_seconds_test.html
  get_link_by_building_status_test.html
  jsUnitTestSuite.html
  rounded_test.html
  statistics_observer_test.html
  timer_test.html
  toggle_tab_content_test.html
  toggle_tab_test.html
  tooltip_observer_test.html
  word_break_inserter_test.html