Skip to content

Commit

Permalink
write unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tim4dev committed Sep 24, 2009
1 parent 593d96d commit f255b72
Show file tree
Hide file tree
Showing 28 changed files with 933 additions and 55 deletions.
2 changes: 2 additions & 0 deletions .gitignore
@@ -1,4 +1,6 @@
*~
*.tmp
.buildpath
.settings/
library/Zend/
tests/report/*
19 changes: 19 additions & 0 deletions 4CONTRIBUTORS
Expand Up @@ -25,3 +25,22 @@ Webacula support multilingual - standard gettext (*.mo) files.
Make copy languages/default.po and modify for your language.
And send me the file as described above.



For designers
~~~~~~~~~~~~~

Now very easy to create new skins.
For a basis, take the contents of directory "html/styles/default".
Create a subdirectory in "html/styles", for example "html/styles/mycoolskin".
Make their own styles and images.
Further, if you want to change the layouts of the pages in "application/layouts".
For a basis, take the contents of directory "application/layouts/default".
Create a subdirectory "application/layouts/mycoolskin".
Make their own layouts.

And then include your styles, images and layouts in "application/config.ini" :

[layout]
path = "mycoolskin"

18 changes: 18 additions & 0 deletions 4CONTRIBUTORS.ru
Expand Up @@ -24,3 +24,21 @@ Webacula имеет мультиязычную поддержку в виде с
Сделайте копию languages/default.po и измените для вашего языка.
И пришлите файл мне как описано выше.



Для дизайнеров
~~~~~~~~~~~~~~

Теперь можно легко создавать новые скины.
За основу возьмите содержимое каталога "html/styles/default".
Создайте свой подкаталог в "html/styles", например, "html/styles/mycoolskin".
Сделайте там свои стили и картинки.
Далее, если вы хотите, измените макеты страниц в "application/layouts".
За основу возьмите содержимое каталога "application/layouts/default".
Создайте подкаталог "application/layouts/mycoolskin".
Сделайте свои макеты.

И подключите все ваши стили, картинки и макеты в "application/config.ini" :

[layout]
path = "mycoolskin"
9 changes: 6 additions & 3 deletions ChangeLog
Expand Up @@ -2,12 +2,15 @@ Webacula ChangeLog
------------------

=== 3.2
Restructuring of source code : Move all SQL code from controllers to models.
Restructuring of source code : use Zend_Layout.
Improved design.
Fixed few bugs.
Restructuring of source code : Move all SQL code from controllers to models.
Restructuring of source code : use Zend_Layout. Now very easy to create new skins.
Important information for web designers described in file 4CONTRIBUTORS.

=== 3.1 release (2009-09-16)
Add full PostgreSQL support (restore files, logbook, etc).
Add full Sqlite support (restore files, logbook, etc).
Add full Sqlite support (restore files, logbook, etc).
Rewrite drawFileTreeAction().
Add regress testing procedures.
More bugfixes.
Expand Down
19 changes: 6 additions & 13 deletions application/controllers/RestorejobController.php
Expand Up @@ -506,25 +506,18 @@ function selectFilesAction()

function selectBackupsBeforeDateAction()
{
Zend_Loader::loadClass('Client');
Zend_Loader::loadClass('Job');
// поиск ClientId
$bacula = Zend_Registry::get('db_bacula');
$select = new Zend_Db_Select($bacula);
$select->from('Client');
$select->where("Name = ?", $this->restoreNamespace->ClientNameFrom);
$select->limit(1);
//$sql = $select->__toString(); echo "<pre>$sql</pre>"; exit; // for !!!debug!!!
$stmt = $select->query();
$line = $stmt->fetch();
$this->restoreNamespace->ClientIdFrom = $line['clientid'];
unset($stmt);
unset($select);

$client = new Client();
$this->restoreNamespace->ClientIdFrom = $client->getClientId($this->restoreNamespace->ClientNameFrom);

if ( !empty($this->restoreNamespace->DateBefore) ) {
$date_before = " AND Job.StartTime<'".$this->restoreNamespace->DateBefore."'";
} else {
$date_before = '';
}
Zend_Loader::loadClass('Job');

$job = new Job();
$ajobs = $job->getJobBeforeDate($date_before, $this->restoreNamespace->ClientIdFrom, $this->restoreNamespace->FileSet);
if ( !$ajobs ) {
Expand Down
12 changes: 12 additions & 0 deletions application/models/Client.php
Expand Up @@ -71,4 +71,16 @@ function getClientName($jobid)
return $res[0]['name'];
}

function getClientId($client_name)
{
$select = new Zend_Db_Select($this->_db);
$select->from('Client');
$select->where("Name = ?", $client_name);
$select->limit(1);
//$sql = $select->__toString(); echo "<pre>$sql</pre>"; exit; // for !!!debug!!!
$stmt = $select->query();
$res = $stmt->fetch();
return $res['clientid'];
}

}
25 changes: 24 additions & 1 deletion application/models/WbTmpTable.php
Expand Up @@ -1094,7 +1094,30 @@ function getListToRestore($offset)
}



public function getCountFile() {
// подсчет кол-ва файлов
$query = "SELECT count(*) as num FROM " . $this->_db->quoteIdentifier($this->tmp_file);
$stmt = $this->_db->query($query);
$countf = $stmt->fetchAll();
return $countf[0]['num'];
}

public function getCountFileName() {
// подсчет кол-ва
$query = "SELECT count(*) as num FROM " . $this->_db->quoteIdentifier($this->tmp_filename);
$stmt = $this->_db->query($query);
$countf = $stmt->fetchAll();
return $countf[0]['num'];
}

public function getCountPath() {
// подсчет кол-ва
$query = "SELECT count(*) as num FROM " . $this->_db->quoteIdentifier($this->tmp_path);
$stmt = $this->_db->query($query);
$countf = $stmt->fetchAll();
return $countf[0]['num'];
}

function my_debug($msg)
{
echo "$msg<br>";
Expand Down
3 changes: 3 additions & 0 deletions regress/clean_all.sh
Expand Up @@ -14,16 +14,19 @@ read
if test $? -ne 0; then
echo "Can't connect to postgresql."
/sbin/service postgresql start
sleep 7
fi

/usr/bin/mysqlshow mysql
if test $? -ne 0; then
echo "Can't connect to mysqld."
/sbin/service mysqld start
sleep 7
fi

cd /etc/bacula
./bacula stop
sleep 3

echo -e "\n\n"

Expand Down
27 changes: 13 additions & 14 deletions regress/etc/bacula/bacula-dir.conf
@@ -1,6 +1,5 @@
#
# Bacula 3.0.1 Director test config for Webacula 3.0
# $Id: bacula-dir.conf 398 2009-08-13 23:07:32Z tim4dev $
# Bacula 3.x Director test config for Webacula 3.x
#

Director {
Expand Down Expand Up @@ -197,9 +196,9 @@ Job {
SpoolData = yes
Maximum Concurrent Jobs = 3
Priority = 10
Reschedule On Error = yes # повторять ли при ошибке
Reschedule Interval = 5 minutes # интервал для повтора
Reschedule Times = 2 # кол-во повторов
Reschedule On Error = no # повторять ли при ошибке
# Reschedule Interval = 1 minutes # интервал для повтора
# Reschedule Times = 1 # кол-во повторов
RunBeforeJob = "/etc/bacula/scripts/before_test.sh"
RunAfterJob = "/etc/bacula/scripts/after_test.sh"
}
Expand Down Expand Up @@ -231,9 +230,9 @@ Job {
SpoolData = yes
Maximum Concurrent Jobs = 3
Priority = 10
Reschedule On Error = yes # повторять ли при ошибке
Reschedule Interval = 5 minutes # интервал для повтора
Reschedule Times = 2 # кол-во повторов
Reschedule On Error = no # повторять ли при ошибке
# Reschedule Interval = 1 minutes # интервал для повтора
# Reschedule Times = 1 # кол-во повторов
RunBeforeJob = "/etc/bacula/scripts/before_test.sh"
RunAfterJob = "/etc/bacula/scripts/after_test.sh"
}
Expand Down Expand Up @@ -265,9 +264,9 @@ Job {
SpoolData = yes
Maximum Concurrent Jobs = 3
Priority = 10
Reschedule On Error = yes # повторять ли при ошибке
Reschedule Interval = 5 minutes # интервал для повтора
Reschedule Times = 2 # кол-во повторов
Reschedule On Error = no # повторять ли при ошибке
# Reschedule Interval = 1 minutes # интервал для повтора
# Reschedule Times = 1 # кол-во повторов
RunBeforeJob = "/etc/bacula/scripts/before_test.sh"
RunAfterJob = "/etc/bacula/scripts/after_test.sh"
}
Expand Down Expand Up @@ -300,9 +299,9 @@ Job {
SpoolData = yes
Maximum Concurrent Jobs = 3
Priority = 10
Reschedule On Error = yes # повторять ли при ошибке
Reschedule Interval = 5 minutes # интервал для повтора
Reschedule Times = 2 # кол-во повторов
Reschedule On Error = no # повторять ли при ошибке
# Reschedule Interval = 1 minutes # интервал для повтора
# Reschedule Times = 1 # кол-во повторов
RunBeforeJob = "/etc/bacula/scripts/before_test.sh"
RunAfterJob = "/etc/bacula/scripts/after_test.sh"
}
Expand Down
3 changes: 1 addition & 2 deletions regress/etc/bacula/bacula-fd.conf
@@ -1,6 +1,5 @@
#
# Bacula 3.0.1 File Daemon test config for Webacula 3.0
# $Id: bacula-fd.conf 378 2009-07-07 08:34:23Z tim $
# Bacula 3.x File Daemon test config for Webacula 3.x
#

# List Directors who are permitted to contact this File daemon
Expand Down
3 changes: 1 addition & 2 deletions regress/etc/bacula/bacula-sd.conf
@@ -1,6 +1,5 @@
#
# Bacula 3.0.1 Storage Daemon test config for Webacula 3.0
# $Id: bacula-sd.conf 378 2009-07-07 08:34:23Z tim $
# Bacula 3.x Storage Daemon test config for Webacula 3.x
#

Storage {
Expand Down
3 changes: 1 addition & 2 deletions regress/etc/bacula/bconsole.conf
@@ -1,6 +1,5 @@
#
# Bacula 3.0.1 Console test config for Webacula 3.0
# $Id: bconsole.conf 378 2009-07-07 08:34:23Z tim $
# Bacula 3.x Console test config for Webacula 3.x

Director {
Name = main-dir
Expand Down
2 changes: 1 addition & 1 deletion regress/etc/bacula/scripts/after_test.sh
@@ -1,7 +1,7 @@
#!/bin/sh

echo "Test after"
sleep 7;
sleep 10;

exit 0;

2 changes: 1 addition & 1 deletion regress/etc/bacula/scripts/before_test.sh
@@ -1,7 +1,7 @@
#!/bin/sh

echo "Test before"
sleep 7;
sleep 10;

exit 0;

2 changes: 2 additions & 0 deletions regress/prepare.sh
Expand Up @@ -54,13 +54,15 @@ my_log "Check PostgreSql..."
if test $? -ne 0; then
echo "Can't connect to postgresql."
/sbin/service postgresql start
sleep 5
fi

my_log "Check MySql..."
/usr/bin/mysqlshow mysql
if test $? -ne 0; then
echo "Can't connect to mysqld."
/sbin/service mysqld start
sleep 5
fi


Expand Down
14 changes: 4 additions & 10 deletions regress/test_plan_ru.dokuwiki
@@ -1,6 +1,6 @@
======Тестирование Webacula ======

--- //[[tim4dev@gmail.com|Yuri Timofeev]] 2009/09/21 20:02//
--- //[[tim4dev@gmail.com|Yuri Timofeev]] 2009/09/24//

====== Запуск postgresql ======

Expand Down Expand Up @@ -122,7 +122,6 @@ Terminated Jobs:

Запустить задания

job.name.test.1
job name test 2
job-name-test-3

Expand All @@ -131,8 +130,6 @@ Terminated Jobs:
grep -i -E '( Termination:| Job:| Error:)' /tmp/webacula/log/bacula.log


Job: job.name.test.1.2009-07-10_10.14.01_59
Termination: Backup OK
Job: job_name_test_2.2009-07-10_10.17.16_02
Termination: Backup OK
Job: job-name-test-3.2009-08-09_20.43.55_28
Expand All @@ -153,16 +150,16 @@ grep -i -E '( Termination:| Job:| Error:)' /tmp/webacula/log/bacula.log

Найти
* Закладка **Id Задания** Ввести Id = 4
* Закладка **Время, Клиент ...**. Задать "Уровень" = Дифференциальное. **__Результат__** Id: 5, 7, 13
* Закладка **Время, Клиент ...**. Задать "Уровень" = Дифференциальное. **__Результат__** Id: 5, 7, 12
* Закладка **Имя тома** ''pool.file.7d.0001'' **__Результат__** Id 1
* Закладка **Список последних 20 запущенных Заданий** **Результат** - все задания id 1--14.
* Закладка **Список последних 20 запущенных Заданий** **Результат** - все задания id 1--13
* Закладка **Имя файла** Ввести <code>0 Файл'.txt</code> **__Результат__** Id 1



==== График ====

Указать текущую дату. Получить график по всем Заданиям Id 1--14
Указать текущую дату. Получить график по всем Заданиям Id 1--13

Если график не отрисовывается, то проверить создается ли картинка, например:
http://localhost/webacula/chart/timeline/datetimeline/2009-09-21
Expand Down Expand Up @@ -592,6 +589,3 @@ psql webacula
webacula=# \dt
</code>




0 comments on commit f255b72

Please sign in to comment.