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