You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(39) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(20) |
Feb
(8) |
Mar
(22) |
Apr
(14) |
May
(48) |
Jun
(29) |
Jul
(48) |
Aug
(5) |
Sep
(13) |
Oct
(5) |
Nov
(28) |
Dec
(42) |
| 2008 |
Jan
(32) |
Feb
(39) |
Mar
(60) |
Apr
(117) |
May
(9) |
Jun
(35) |
Jul
(1) |
Aug
(11) |
Sep
(38) |
Oct
(26) |
Nov
(7) |
Dec
(65) |
| 2009 |
Jan
(30) |
Feb
(22) |
Mar
(9) |
Apr
(5) |
May
(10) |
Jun
(13) |
Jul
(60) |
Aug
(9) |
Sep
(24) |
Oct
(20) |
Nov
(20) |
Dec
(28) |
| 2010 |
Jan
|
Feb
|
Mar
(11) |
Apr
(19) |
May
(7) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
|
Oct
(8) |
Nov
(8) |
Dec
(4) |
| 2011 |
Jan
|
Feb
(1) |
Mar
(3) |
Apr
(22) |
May
(7) |
Jun
(20) |
Jul
(6) |
Aug
(4) |
Sep
|
Oct
(1) |
Nov
(13) |
Dec
(4) |
| 2012 |
Jan
(14) |
Feb
|
Mar
(4) |
Apr
(14) |
May
(3) |
Jun
(4) |
Jul
(3) |
Aug
(1) |
Sep
(2) |
Oct
(4) |
Nov
(5) |
Dec
(2) |
| 2013 |
Jan
(1) |
Feb
(3) |
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
|
From: SourceForge.net <no...@so...> - 2011-06-01 11:26:05
|
Bugs item #3310086, was opened at 2011-06-01 09:24 Message generated for change (Comment added) made by You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=3310086&group_id=76550 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: transkontrol () Assigned to: Nobody/Anonymous (nobody) Summary: invalid links label Initial Comment: function addLink(SimpleAnchorTag $tag) { $this->links[$this->links_counter] = $tag; - $this->links_label[$this->links_counter] = str_replace("\xA0", ' ', $tag->getText() ); + $this->links_label[$this->links_counter] = str_replace("\n", ' ', $tag->getText() ); $this->links_counter++; } in case Russian UTF-8 document current links_label break some letters ---------------------------------------------------------------------- >Comment By: transkontrol () Date: 2011-06-01 11:26 Message: this bug in page.php - SimplePage::addLink() ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=3310086&group_id=76550 |
|
From: SourceForge.net <no...@so...> - 2011-06-01 09:24:26
|
Bugs item #3310086, was opened at 2011-06-01 09:24 Message generated for change (Tracker Item Submitted) made by You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=3310086&group_id=76550 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: transkontrol () Assigned to: Nobody/Anonymous (nobody) Summary: invalid links label Initial Comment: function addLink(SimpleAnchorTag $tag) { $this->links[$this->links_counter] = $tag; - $this->links_label[$this->links_counter] = str_replace("\xA0", ' ', $tag->getText() ); + $this->links_label[$this->links_counter] = str_replace("\n", ' ', $tag->getText() ); $this->links_counter++; } in case Russian UTF-8 document current links_label break some letters ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=3310086&group_id=76550 |
|
From: <pp...@us...> - 2011-05-24 20:18:14
|
Revision: 2022
http://simpletest.svn.sourceforge.net/simpletest/?rev=2022&view=rev
Author: pp11
Date: 2011-05-24 20:18:07 +0000 (Tue, 24 May 2011)
Log Message:
-----------
Keeping the french docs in synch II
Modified Paths:
--------------
simpletest/trunk/docs/source/fr/form_testing_documentation.xml
simpletest/trunk/docs/source/fr/gain_control_tutorial.xml
simpletest/trunk/docs/source/fr/group_test_documentation.xml
Modified: simpletest/trunk/docs/source/fr/form_testing_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/fr/form_testing_documentation.xml 2011-05-23 21:16:47 UTC (rev 2021)
+++ simpletest/trunk/docs/source/fr/form_testing_documentation.xml 2011-05-24 20:18:07 UTC (rev 2022)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $Id$ -->
<page title="Documentation sur les tests de formulaire" here="Les tests des formulaires">
- <synchronisation lang="en" version="1687" date="24/03/2008" maintainer="pp11" />
+ <synchronisation lang="en" version="1952" date="24/05/2011" maintainer="pp11" />
<long_title>Documentation SimpleTest : tester des formulaires HTML</long_title>
<content>
<section name="submit" title="Valider un formulaire simple">
@@ -13,12 +13,12 @@
\xE0 l'int\xE9rieur de la balise <form> sont disponibles
depuis l'int\xE9rieur du sc\xE9nario de test.
Prenons par exemple cet extrait de code HTML...
-<pre><![CDATA[
+<php><![CDATA[
<form>
<input type="text" name="a" value="A default" />
<input type="submit" value="Go" />
</form>
-]]></pre>
+]]></php>
Il ressemble \xE0...
</p>
<p>
@@ -32,8 +32,7 @@
<a href="http://www.lastcraft.com/form_testing_documentation.php">LastCraft</a>,
avec le test suivant...
<php><![CDATA[
-class SimpleFormTests extends WebTestCase {
- <strong>
+class SimpleFormTests extends WebTestCase {<strong>
function testDefaultValue() {
$this->get('http://www.lastcraft.com/form_testing_documentation.php');
$this->assertField('a', 'A default');
@@ -47,8 +46,16 @@
et qu'il contient la valeur "A default".
</p>
<p>
- Nous pourrions retourner le formulaire tout de suite,
- mais d'abord nous allons changer la valeur du champ texte.
+ Nous pourrions retourner le formulaire tout de suite...
+<php><![CDATA[
+class SimpleFormTests extends WebTestCase {
+ function testDefaultValue() {
+ $this->get('http://www.lastcraft.com/form_testing_documentation.php');
+ $this->assertField('a', <strong>new PatternExpectation('/default/')</strong>);
+ }
+}
+]]></php>
+ Mais d'abord nous allons changer la valeur du champ texte.
Ce n'est qu'apr\xE8s que nous le transmettrons...
<php><![CDATA[
class SimpleFormTests extends WebTestCase {
@@ -65,15 +72,16 @@
sur la balise form, ni attribut "action",
le sc\xE9nario de test suivra le comportement classique d'un navigateur :
transmission des donn\xE9es avec une requ\xEAte <em>GET</em>
- vers la m\xEAme page. SimpleTest essaie d'\xE9muler
+ vers la m\xEAme page. En r\xE8gle g\xE9n\xE9rale SimpleTest essaie d'\xE9muler
le comportement typique d'un navigateur autant que possible,
plut\xF4t que d'essayer d'attraper des attributs manquants sur les balises.
La raison est simple : la cible d'un framework de test est
la logique d'une application PHP, pas les erreurs
-- de syntaxe ou autres -- du code HTML.
Pour les erreurs HTML, d'autres outils tel
- <a href="http://www.w3.org/People/Raggett/tidy/">HTMLTidy</a>
- devraient \xEAtre employ\xE9s.
+ <a href="http://www.w3.org/People/Raggett/tidy/">HTMLTidy</a>
+ devraient \xEAtre employ\xE9s, ou m\xEAme n'importe lequel des validateurs HTML et CSS
+ d\xE9j\xE0 sur le march\xE9.
</p>
<p>
Si un champ manque dans n'importe quel formulaire ou si
@@ -81,14 +89,14 @@
renverra <code>false</code>. Par exemple, supposons que
nous souhaitons v\xE9rifier qu'une option "Superuser"
n'est pas pr\xE9sente dans ce formulaire...
-<pre><![CDATA[
+<php><![CDATA[
<strong>Select type of user to add:</strong>
<select name="type">
<option>Subscriber</option>
<option>Author</option>
<option>Administrator</option>
</select>
-]]></pre>
+]]></php>
Qui ressemble \xE0...
</p>
<p>
@@ -112,8 +120,7 @@
}
}
]]></php>
- La s\xE9lection ne sera pas chang\xE9e suite \xE0 un \xE9chec d'initialisation
- d'une valeur sur un objet.
+ La s\xE9lection ne sera pas chang\xE9e si la nouvelle valeur n'est pas une des options.
</p>
<p>
Voici la liste compl\xE8te des objets support\xE9s \xE0 aujourd'hui...
@@ -148,7 +155,7 @@
La nature de ceux-ci implique que leur initialisation
et leur test sont l\xE9g\xE8rement diff\xE9rents.
Voici un exemple avec des cases \xE0 cocher...
-<pre><![CDATA[
+<php><![CDATA[
<form class="demo">
<strong>Create privileges allowed:</strong>
<input type="checkbox" name="crud" value="c" checked><br>
@@ -160,7 +167,7 @@
<input type="checkbox" name="crud" value="d" checked><br>
<input type="submit" value="Enable Privileges">
</form>
-]]></pre>
+]]></php>
Qui se traduit par...
</p>
<p>
@@ -207,9 +214,9 @@
Le code suivant <em>ne fonctionnera pas</em> :
<php><![CDATA[
class SimpleFormTests extends WebTestCase {
- function testMyJavascriptForm() {
- <strong>// Ne fonctionne *pas*</strong>
- $this->setField('un_champ_cach\xE9', '123');
+ function testEmulateMyJavascriptForm() {
+ <strong>// This does *not* work</strong>
+ $this->setField('a_hidden_field', '123');
$this->clickSubmit('OK');
}
}
@@ -219,8 +226,7 @@
<php><![CDATA[
class SimpleFormTests extends WebTestCase {
function testMyJavascriptForm() {
- // Ajoute le champ cach\xE9 comme variable POST suppl\xE9mentaire
- <strong>$this->clickSubmit('OK', array('un_champ_cach\xE9'=>'123'));</strong>
+ <strong>$this->clickSubmit('OK', array('a_hidden_field'=>'123'));</strong>
}
}
@@ -232,7 +238,7 @@
dans le formulaire) et que peut-\xEAtre serait-il plus prudent
d'utiliser un outil comme
<a href="http://selenium.openqa.org/">Selenium</a> pour mettre sur pied
- un test de recette complet.
+ un test complet.
</p>
</section>
<section name="brut" title="Envoi brut">
@@ -252,7 +258,11 @@
}
]]></php>
En ajoutant des donn\xE9es \xE0 la m\xE9thode <code>WebTestCase::post()</code>,
- nous essayons de t\xE9l\xE9charger la page via la transmission d'un formulaire.
+ nous \xE9mulons la transmission d'un formulaire.
+ D'ordinaire, vous ne ferez cela que pour parer au plus press\xE9,
+ ou alors si vous esp\xE9rez un tiers (javascript ?) transmette le formulaire.
+ Il reste quand m\xEAme exception : si vous souhaitez vous prot\xE9gez
+ d'attaques de type "spoofing".
</p>
</section>
</content>
Modified: simpletest/trunk/docs/source/fr/gain_control_tutorial.xml
===================================================================
--- simpletest/trunk/docs/source/fr/gain_control_tutorial.xml 2011-05-23 21:16:47 UTC (rev 2021)
+++ simpletest/trunk/docs/source/fr/gain_control_tutorial.xml 2011-05-24 20:18:07 UTC (rev 2022)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $Id$ -->
<page title="Prendre le contr\xF4le des tests" here="Prendre le contr\xF4le des tests">
- <synchronisation lang="en" version="1687" date="24/03/2008" maintainer="pp11" />
+ <synchronisation lang="en" version="1867" date="24/05/2011" maintainer="pp11" />
<long_title>Tutorial de test unitaire en PHP - Isoler les variables pendant le test</long_title>
<content>
<introduction>
@@ -30,13 +30,15 @@
les droits de fichier et les ressources r\xE9seau, etc.
L'\xE9chec ou la mauvaise installation de l'un ou l'autre
de ces composants cassera la suite de test.
+ </p>
+ <p>
Est-ce que nous devons ajouter des tests pour valider
l'installation de ces composants ?
C'est une bonne id\xE9e mais si vous les placez
dans les tests du module de code vous aller commencer
\xE0 encombrer votre code de test avec des d\xE9tails
hors de propos avec la t\xE2che en cours.
- Ils doivent \xEAtre plac\xE9s dans leur propre groupe de tests.
+ Ils doivent \xEAtre plac\xE9s dans leur propre suite de tests.
</p>
<p>
Par contre un autre probl\xE8me reste :
@@ -48,10 +50,10 @@
Devant un tel dilemme, nous cr\xE9erons souvent
des versions enveloppantes des classes qui g\xE8rent ces ressources.
Les vilains d\xE9tails de ces ressources sont ensuite cod\xE9s une seule fois.
- J'aime bien appeler ces classes des "classes fronti\xE8re"
+ J'aime bien appeler ces classes des "classes passerelle"
\xE9tant donn\xE9 qu'elles existent en bordure de l'application,
l'interface entre votre application et le reste du syst\xE8me.
- Ces classes fronti\xE8re sont - dans le meilleur des cas - simul\xE9es
+ Ces classes passerelle sont - dans le meilleur des cas - simul\xE9es
pendant les tests par des versions de simulacre.
Elles s'ex\xE9cutent plus rapidement et sont souvent appel\xE9es
"bouchon serveur [Ndt : Server Stubs]"
@@ -62,6 +64,8 @@
</p>
<p>
Un des facteurs souvent n\xE9glig\xE9s reste le temps.
+ </p>
+ <p>
Par exemple, pour tester l'expiration d'une session des codeurs
vont souvent temporairement en caler la dur\xE9e
\xE0 une valeur tr\xE8s courte, disons 2 secondes,
@@ -82,44 +86,36 @@
dans notre suite de test <em>tests/all_tests.php</em>...
<php><![CDATA[
<?php
-if (! defined('SIMPLE_TEST')) {
- define('SIMPLE_TEST', 'simpletest/');
-}
-require_once(SIMPLE_TEST . 'autorun.php');
-require_once('log_test.php');<strong>
-require_once('clock_test.php');</strong>
+require_once(dirname(__FILE__) . '/simpletest/autorun.php');
+require_once(dirname(__FILE__) . '/log_test.php');
+require_once(dirname(__FILE__) . '/clock_test.php');
-$test = &new TestSuite('All tests');
-$test->addTestCase(new TestOfLogging());<strong>
-$test->addTestCase(new TestOfClock());</strong>
-$test->run(new HtmlReporter());
+class AllTests extends TestSuite {
+ function __construct() {
+ parent::__construct();
+ $this->addTest(new TestOfLogging());<strong>
+ $this->addTest(new TestOfClock());</strong>
+ }
+}
?>
]]></php>
Ensuite nous cr\xE9ons le sc\xE9nario de test
dans un nouveau fichier <em>tests/clock_test.php</em>...
<php><![CDATA[
-<strong><?php
- require_once('../classes/clock.php');
-
- class TestOfClock extends UnitTestCase {
- function TestOfClock() {
- $this->UnitTestCase('Clock class test');
- }
- function testClockTellsTime() {
- $clock = new Clock();
- $this->assertEqual($clock->now(), time(), 'Now is the right time');
- }
- function testClockAdvance() {
- }
+<?php
+require_once(dirname(__FILE__) . '/../classes/clock.php');
+<strong>
+class TestOfClock extends UnitTestCase {
+ function testClockTellsTime() {
+ $clock = new Clock();
+ $this->assertEqual($clock->now(), time());
}
-?></strong>
+}</strong>
+?>
]]></php>
Notre unique test pour le moment, c'est que
notre nouvelle class <code>Clock</code> se comporte
comme un simple substitut de la fonction <code>time()</code> en PHP.
- L'autre m\xE9thode tient lieu d'emploi.
- C'est notre <em>chose \xE0 faire</em> en quelque sorte.
- Nous ne lui avons pas donn\xE9e de test parce que \xE7a casserait notre rythme.
Nous \xE9crirons cette fonctionnalit\xE9 de d\xE9calage
dans le temps une fois que nous serons au vert.
Pour le moment nous ne sommes \xE9videmment pas dans le vert...
@@ -129,33 +125,39 @@
<b>/home/marcus/projects/lastcraft/tutorial_tests/tests/clock_test.php</b> on line <b>2</b>
<br />
</div>
- Nous cr\xE9ons un fichier <em>classes/clock.php</em> comme ceci...
+ </p>
+ <p>
+ Si vous ne voyez pas ce genre d'erreurs, c'est probablement que vos param\xE8tres d'erreurs ont besoin
+ d'un petit ajustement. Vous aurez peut-\xEAtre envie d'ajouter ces quelques lignes
+ en t\xEAte de votre fichier de test :
<php><![CDATA[
+ini_set('display_errors', 1);
+error_reporting(E_ALL);
+]]></php>
+ La documentation PHP pourrait devenir pratique si vous \xEAtes bloqu\xE9
+ sans voire cette <code>Fatal error</code>.
+ </p>
+ <p>
+ Consid\xE9rons que l'erreur s'affiche bien, nous pouvons alors continuer
+ et cr\xE9er un fichier <em>classes/clock.php</em>...
+<php><![CDATA[
<strong><?php
- class Clock {
-
- function Clock() {
- }
-
- function now() {
- }
+class Clock {
+ function now() {
}
+}
?></strong>
]]></php>
De la sorte nous reprenons le cours du code.
<div class="demo">
- <h1>All tests</h1>
- <span class="fail">Fail</span>: Clock class test->testclocktellstime->[NULL: ] should be equal to [integer: 1050257362]<br />
+ <h1>AllTests</h1>
+ <span class="fail">Fail</span>: TestOfClock -> testClockTellsTime -> [NULL: ] should be equal to [integer: 1050257362]<br />
<div style="padding: 8px; margin-top: 1em; background-color: red; color: white;">3/3 test cases complete.
- <strong>4</strong> passes and <strong>1</strong> fails.</div>
+ <strong>4</strong> passes, <strong>1</strong> fails and <strong>0</strong> exceptions.</div>
</div>
Facile \xE0 corriger...
<php><![CDATA[
class Clock {
-
- function Clock() {
- }
-
function now() {<strong>
return time();</strong>
}
@@ -163,11 +165,13 @@
]]></php>
Et nous revoici dans le vert...
<div class="demo">
- <h1>All tests</h1>
+ <h1>AllTests</h1>
<div style="padding: 8px; margin-top: 1em; background-color: green; color: white;">3/3 test cases complete.
- <strong>5</strong> passes and <strong>0</strong> fails.</div>
+ <strong>5</strong> passes, <strong>0</strong> fails and <strong>0</strong> exceptions.</div>
</div>
- Il y a juste un petit probl\xE8me.
+ Il y a juste un petit probl\xE8me.
+ </p>
+ <p>
L'horloge pourrait basculer pendant l'assertion
et cr\xE9er un \xE9cart d'une seconde.
Les probabilit\xE9s sont assez faibles mais s'il devait
@@ -181,17 +185,16 @@
Le test d'avancement ressemble \xE0...
<php><![CDATA[
class TestOfClock extends UnitTestCase {
- function TestOfClock() {
- $this->UnitTestCase('Clock class test');
- }
+
function testClockTellsTime() {
$clock = new Clock();
- $this->assertEqual($clock->now(), time(), 'Now is the right time');
- }<strong>
+ $this->assertEqual($clock->now(), time());
+ }
+ <strong>
function testClockAdvance() {
$clock = new Clock();
$clock->advance(10);
- $this->assertEqual($clock->now(), time() + 10, 'Advancement');
+ $this->assertEqual($clock->now(), time() + 10);
}</strong>
}
]]></php>
@@ -199,24 +202,20 @@
il suffit d'ajouter un d\xE9calage de temps.
<php><![CDATA[
class Clock {<strong>
- var $_offset;</strong>
+ private $offset = 0;</strong>
- function Clock() {<strong>
- $this->_offset = 0;</strong>
- }
-
function now() {
- return time()<strong> + $this->_offset</strong>;
+ return time()<strong> + $this->offset</strong>;
}
<strong>
function advance($offset) {
- $this->_offset += $offset;
+ $this->offset += $offset;
}</strong>
}
]]></php>
</p>
</section>
- <section name="nettoyer" title="Nettoyer le test de groupe">
+ <section name="nettoyer" title="Nettoyer la suite de tests">
<p>
Notre fichier <em>all_tests.php</em> contient des r\xE9p\xE9titions
dont nous pourrions nous d\xE9barrasser.
@@ -227,29 +226,22 @@
appel\xE9e <code>addTestFile()</code> qui prend un fichier PHP comme param\xE8tre.
Ce m\xE9canisme prend note de toutes les classes :
elle inclut le fichier et ensuite regarde toutes les classes
- nouvellement cr\xE9\xE9es. S'il y a des filles de <code>TestCase</code>
- elles sont ajout\xE9es au nouveau test de groupe.
+ nouvellement cr\xE9\xE9es. S'il y a des filles de <code>SimpleTestCase</code>
+ elles sont ajout\xE9es comme une nouvelle <code>TestSuite</code>.
</p>
<p>
- En outre, la biblioth\xE8que <em>autorun</em> lancera tous les sc\xE9narios
- de test collect\xE9s automagiquement apr\xE8s les avoir charg\xE9s.
- </p>
- <p>
Voici notre suite de test remani\xE9e en appliquant cette m\xE9thode...
<php><![CDATA[
-<?php
-if (! defined('SIMPLE_TEST')) {
- define('SIMPLE_TEST', 'simpletest/');
-}<strong>
-require_once(SIMPLE_TEST . 'autorun.php');</strong>
-<strong>
+<?php<strong>
+require_once(dirname(__FILE__) . '/simpletest/autorun.php');</strong>
+
class AllTests extends TestSuite {
function AllTests() {
- $this->TestSuite('All tests');
+ parent::__construct();<strong>
$this->addFile('log_test.php');
- $this->addFile('clock_test.php');
+ $this->addFile('clock_test.php');</strong>
}
-}</strong>
+}
?>
]]></php>
Les inconv\xE9niants sont les suivants...
@@ -260,14 +252,17 @@
</li>
<li>
Si le fichier de test contient d'autres classes
- reli\xE9es \xE0 <code>TestCase</code> alors celles-ci
+ reli\xE9es \xE0 <code>SimpleTestCase</code> alors celles-ci
aussi seront ajout\xE9 au test de groupe.
</li>
</ol>
- Dans nos test nous n'avons que des sc\xE9narios dans les
- fichiers de test et en plus nous avons supprim\xE9
- leur inclusion du script <em>all_tests.php</em> :
- nous sommes donc en r\xE8gle. C'est la situation la plus commune.
+ In practice neither of these turn out to be problems.
+ Test suites are usually a tree structure, so
+ it's rare to need a test case in two places.
+
+ En pratique, ni l'un ni l'autre ne sont v\xE9ritablement un soucis.
+ Les suites de tests sont g\xE9n\xE9ralement structur\xE9es en arbre,
+ il est donc tr\xE8s rare qu'un test se retrouve dans deux endroits.
</p>
<p>
Nous devrions corriger au plus vite le petit probl\xE8me
@@ -285,13 +280,13 @@
nous permet de modifier le temps.
</link>
<link>
- <a href="#nettoyer">Nettoyer le test de groupe</a>.
+ <a href="#nettoyer">Nettoyer la suite de tests</a>.
</link>
</internal>
<external>
<link>
La section pr\xE9c\xE9dente :
- <a href="group_test_tutorial.php">grouper des tests unitaires</a>.
+ <a href="group_test_tutorial.php">grouper des tests unitaires en suite</a>.
</link>
<link>
La section suivante :
Modified: simpletest/trunk/docs/source/fr/group_test_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/fr/group_test_documentation.xml 2011-05-23 21:16:47 UTC (rev 2021)
+++ simpletest/trunk/docs/source/fr/group_test_documentation.xml 2011-05-24 20:18:07 UTC (rev 2022)
@@ -1,317 +1,186 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $Id$ -->
<page title="Documentation sur le groupement des tests" here="Les groupes de tests">
- <synchronisation lang="en" version="1687" date="24/03/2008" maintainer="pp11" />
+ <synchronisation lang="en" version="2007" date="24/05/2011" maintainer="pp11" />
<long_title>Documentation SimpleTest : Grouper des tests</long_title>
<content>
<section name="grouper" title="Grouper des tests">
<p>
- Pour lancer les sc\xE9narios de tests en tant que groupe,
- ils devraient \xEAtre plac\xE9s dans des fichiers sans le code du lanceur...
+ Il existe beaucoup de moyens pour grouper des tests dans des suites de tests.
+ Le premier d'entre eux est tout simplement ajouter tous les sc\xE9narios de test
+ au fur et \xE0 mesure d'un unique fichier...
<php><![CDATA[
<strong><?php
- require_once('../classes/io.php');
+require_once(dirname(__FILE__) . '/simpletest/autorun.php');
+require_once(dirname(__FILE__) . '/../classes/io.php');
- class FileTester extends UnitTestCase {
- ...
- }
+class FileTester extends UnitTestCase {
+ ...
+}
- class SocketTester extends UnitTestCase {
- ...
- }
+class SocketTester extends UnitTestCase {
+ ...
+}
?></strong>
]]></php>
Autant de sc\xE9narios que n\xE9cessaires peuvent \xEAtre
- mis dans un fichier unique. Ils doivent contenir
+ mis dans cet unique fichier. Ils doivent contenir
tout le code n\xE9cessaire, entre autres la biblioth\xE8que test\xE9e,
mais aucune des biblioth\xE8ques de SimpleTest.
</p>
- <p>
- Si vous avez \xE9tendu l'un ou l'autre des sc\xE9narios de test,
- vous pouvez aussi les inclure.
+ <p>
+ Occasionnellement des sous-classes sp\xE9ciales sont cr\xE9\xE9s pour
+ ajouter des m\xE9thodes n\xE9cessaires \xE0 certains tests sp\xE9cifiques
+ au sein de l'application.
+ Ces nouvelles classes de base sont ensuite utilis\xE9es
+ \xE0 la place de <code>UnitTestCase</code>
+ ou de <code>WebTestCase</code>.
+ Bien s\xFBr vous ne souhaitez pas les lancer en tant que
+ sc\xE9nario de tests : il suffit alors de les identifier
+ comme "abstraites"...
<php><![CDATA[
-<?php
- require_once('../classes/io.php');
-<strong>
- class MyFileTestCase extends UnitTestCase {
- ...
- }
- SimpleTestOptions::ignore('MyFileTestCase');</strong>
+<strong>abstract</strong> class MyFileTestCase extends UnitTestCase {
+ ...
+}
- class FileTester extends MyFileTestCase {
- ...
- }
+class FileTester extends MyFileTestCase { ... }
- class SocketTester extends UnitTestCase {
- ...
- }
-?>
+class SocketTester extends UnitTestCase { ... }
]]></php>
La classe <code>FileTester</code> ne contient aucun test v\xE9ritable,
il s'agit d'une classe de base pour d'autres sc\xE9narios de test.
- Pour cette raison nous utilisons la directive
- <code>SimpleTestOptions::ignore()</code> pour indiquer
- au prochain groupe de tests de l'ignorer.
- Cette directive peut se placer n'importe o\xF9 dans le fichier
- et fonctionne quand un fichier complet des sc\xE9narios de test
- est charg\xE9 (cf. ci-dessous).
- Nous l'appelons <em>file_test.php</em>.
- </p>
- <p>
- Ensuite nous cr\xE9ons un fichier de groupe de tests,
- disons <em>group_test.php</em>.
- Vous penserez \xE0 un nom plus convaincant, j'en suis s\xFBr.
- Nous lui ajoutons le fichier de test avec une m\xE9thode sans risque...
+ </p>
+ <p>
+ Nous appelons ce fichier <em>file_test.php</em>.
+ Pour l'instant les sc\xE9narios de tests sont simplement group\xE9s dans le m\xEAme fichier.
+ Nous pouvons mettre en place des structures plus importantes
+ en incluant d'autres fichiers de tests.
<php><![CDATA[
<?php
- require_once('simpletest/unit_tester.php');
- require_once('simpletest/reporter.php');<strong>
- require_once('file_test.php');
-
- $test = &new GroupTest('All file tests');
- $test->addTestCase(new FileTestCase());
- $test->run(new HtmlReporter());</strong>
+require_once('simpletest/autorun.php');
+require_once('file_test.php');
?>
]]></php>
- Ceci instancie le sc\xE9nario de test avant que
- la suite de test ne soit lanc\xE9e.
- \xC7a pourrait devenir assez on\xE9reux avec
- un grand nombre de sc\xE9narios de test :
- il existe donc une autre m\xE9thode qui instancie
- la classe uniquement quand elle devient n\xE9cessaire...
+ Ceci fontionnera, tout en cr\xE9ant une hi\xE9rarchie tout \xE0 fait plate.
+ A la place, nous cr\xE9ons un fichier de suite de tests.
+ Notre suite des tests de premier niveau devient...
<php><![CDATA[
<?php
- require_once('simpletest/unit_tester.php');
- require_once('simpletest/reporter.php');
- require_once('file_test.php');
+require_once('simpletest/autorun.php');
- $test = &new GroupTest('All file tests');<strong>
- $test->addTestClass('FileTestCase');</strong>
- $test->run(new HtmlReporter());
+class AllFileTests extends TestSuite {
+ function __construct() {
+ parent::__construct();
+ <strong>$this->addFile('file_test.php');</strong>
+ }
+}
?>
]]></php>
- Le probl\xE8me de cette technique est que pour
- chaque sc\xE9nario de test suppl\xE9mentaire nous aurons \xE0 importer
- (via <code>require_once()</code>) le fichier de code de test
- et \xE0 instancier manuellement chaque sc\xE9nario de test.
- Nous pouvons nous \xE9pargner beaucoup de dactylographie avec...
+ Voici ce qui arrive : la class <code>TestSuite</code>
+ effecturera le <code>require_once()</code> pour nous.
+ Ensuite elle v\xE9rifie si de nouvelles classes de test
+ ont \xE9t\xE9 cr\xE9\xE9es par ce nouveau fichier et les inclut
+ automatiquement dans la suite de tests.
+ Cette m\xE9thode nous donne un maximum de contr\xF4le
+ tout comme le ferait des ajouts manuels de fichiers de tests
+ au fur et \xE0 mesure o\xF9 notre suite grandit.
+ </p>
+ <p>
+ Si c'est trop de boulot pour vos petits doigts et qu'en plus
+ vous avez envie de grouper vos suites de tests par r\xE9pertoire
+ ou par un tag dans le nom des fichiers, alors il y a un moyen
+ encore plus automatique...
<php><![CDATA[
<?php
- require_once('simpletest/unit_tester.php');
- require_once('simpletest/reporter.php');
+require_once('simpletest/autorun.php');
- $test = &new GroupTest('All file tests');<strong>
- $test->addTestFile('file_test.php');</strong>
- $test->run(new HtmlReporter());
+class AllFileTests extends TestSuite {
+ function __construct() {
+ parent::__construct();
+ $this->collect(dirname(__FILE__) . '/unit',
+ new SimplePatternCollector('/_test.php/'));
+ }
+}
?>
]]></php>
- Voici ce qui vient de se passer :
- la classe <code>GroupTest</code> a r\xE9alis\xE9 le
- <code>require_once()</code> pour nous.
- Ensuite elle v\xE9rifie si de nouvelles classes de sc\xE9nario
- de test ont \xE9t\xE9 cr\xE9\xE9es par ce nouveau fichier
- et les ajoute automatiquement au groupe de tests.
- D\xE9sormais tout ce qu'il nous reste \xE0 faire,
- c'est d'ajouter chaque nouveau fichier.
+ Cette fonctionnalit\xE9s va scanner un r\xE9pertoire appel\xE9 "unit",
+ y d\xE9tecter tous les fichiers finissant par "_test.php"
+ et les charger.
+ Vous n'avez pas besoin d'utiliser <code>SimplePatternCollector</code> pour
+ filtrer en fonction d'un motif dans le nom de fichier,
+ mais c'est son usage le plus courant.
</p>
- <p>
- Il y a deux choses qui peuvent planter
- et qui demandent un minimum d'attention...
- <ol>
- <li>
- Le fichier peut d\xE9j\xE0 avoir \xE9t\xE9 analys\xE9 par PHP
- et dans ce cas aucune classe ne sera ajout\xE9e.
- Pensez \xE0 bien v\xE9rifier que les sc\xE9narios de test
- ne sont inclus que dans ce fichier et dans aucun autre
- (Note : avec la nouvelle fonctionnalit\xE9 <cite>autorun</cite>,
- ce probl\xE8me a maintenant \xE9t\xE9 r\xE9solu).
- </li>
- <li>
- Les nouvelles classes d'extension de sc\xE9nario
- de test qui sont incluses seront plac\xE9es
- dans le groupe de tests et ex\xE9cut\xE9es par la m\xEAme occasion.
- Vous aurez \xE0 ajouter une directive
- <code>SimpleTestOptions::ignore()</code> pour ces classes
- ou alors pensez \xE0 les ajouter avant la ligne
- <code>GroupTest::addTestFile()</code>.
- </li>
- </ol>
+ <p>
+ Ce morceau de code est tr\xE8s courant.
+ D\xE9sormais la seule chose qu'il vous reste \xE0 faire, c'est de
+ d\xE9poser un fichier avec des sc\xE9narios de tests dans ce r\xE9pertoire
+ et il sera lanc\xE9 directement par le script de la suite de tests.
</p>
+ <p>
+ Juste un b\xE9mol : vous ne pouvez pas contr\xF4ler l'ordre de lancement
+ des tests.
+ Si vous souhaitez voir des composants de bas niveau renvoyer leurs erreurs
+ d\xE8s le d\xE9but de la suite de tests - en particulier pour se facilier le travail
+ de diagnostic - alors vous devriez plut\xF4t passer par <code>addFile()</code>
+ pour ces cas sp\xE9cifiques.
+ Les sc\xE9narios de tests ne sont charg\xE9s qu'une fois, pas d'inqui\xE9tude donc
+ lors du scan de votre r\xE9pertoire avec tous les tests.
+ </p>
+ <p>
+ Les tests charg\xE9s avec la m\xE9thode <code>addFile</code> ont certaines propri\xE9t\xE9s
+ qui peuvent s'av\xE9rer int\xE9ressantes.
+ Elle vous assure que le constructeur est lanc\xE9 avant la premi\xE8re m\xE9thode
+ de test et que le destructeur est lanc\xE9 apr\xE8s la derni\xE8re m\xE9thode de test.
+ Cela vous permet de placer une initialisation (setUp et tearDown) globale
+ au sein de ce destructeur et desctructeur, comme dans n'importe
+ quelle classe.
+ </p>
</section>
<section name="plus-haut" title="Groupements de plus haut niveau">
- <p>
+ <p>
La technique ci-dessus place tous les sc\xE9narios de test
dans un unique et grand groupe.
Sauf que pour des projets plus cons\xE9quents,
ce n'est probablement pas assez souple;
vous voudriez peut-\xEAtre grouper les tests tout \xE0 fait diff\xE9remment.
</p>
- <p>
- Pour obtenir un groupe de tests plus souple
- nous pouvons sous classer <code>GroupTest</code>
- et ensuite l'instancier au cas par cas...
+<p>
+ Tout ce que nous avons d\xE9crit avec des scripts de tests
+ s'applique pareillement avec des <code>TestSuite</code>s...
<php><![CDATA[
<?php
- require_once('simpletest/unit_tester.php');
- require_once('simpletest/reporter.php');
- <strong>
- class FileGroupTest extends GroupTest {
- function FileGroupTest() {
- $this->GroupTest('All file tests');
- $this->addTestFile('file_test.php');
- }
- }</strong>
-?>
-]]></php>
- Ceci nomme le test dans le constructeur
- et ensuite ajoute \xE0 la fois nos sc\xE9narios
- de test et un unique groupe en dessous.
- Bien s\xFBr nous pouvons ajouter plus d'un groupe \xE0 cet instant.
- Nous pouvons maintenant invoquer les tests
- \xE0 partir d'un autre fichier d'ex\xE9cution...
-<php><![CDATA[
-<?php
- require_once('file_group_test.php');
- <strong>
- $test = &new FileGroupTest();
- $test->run(new HtmlReporter());</strong>
-?>
-]]></php>
- ...ou alors nous pouvons les grouper
- dans un groupe de tests encore plus grand...
-<php><![CDATA[
-<?php
- require_once('file_group_test.php');
- <strong>
- $test = &new BigGroupTest('Big group');
- $test->addTestCase(new FileGroupTest());
- $test->addTestCase(...);
- $test->run(new HtmlReporter());</strong>
-?>
-]]></php>
- Si nous souhaitons lancer le groupe de tests original
- sans utiliser ses petits fichiers d'ex\xE9cution,
- nous pouvons mettre le code du lanceur de test
- derri\xE8re des barreaux quand nous cr\xE9ons chaque groupe.
-<php><![CDATA[
-<?php
- class FileGroupTest extends GroupTest {
- function FileGroupTest() {
- $this->GroupTest('All file tests');
- $test->addTestFile('file_test.php');
- }
+require_once('simpletest/autorun.php');
+<strong>
+class BigTestSuite extends TestSuite {
+ function __construct() {
+ parent::__construct();
+ $this->addFile('file_tests.php');
}
- <strong>
- if (! defined('RUNNER')) {
- define('RUNNER', true);</strong>
- $test = &new FileGroupTest();
- $test->run(new HtmlReporter());
- }
+}</strong>
?>
]]></php>
- Cette approche exige aux barri\xE8res d'\xEAtre activ\xE9es
- \xE0 l'inclusion du fichier de groupe de tests,
- mais c'est quand m\xEAme moins de tracas que beaucoup
- de fichiers de lancement \xE9parpill\xE9s.
- Reste \xE0 inclure des barreaux identiques
- au niveau sup\xE9rieur afin de s'assurer que
- le <code>run()</code> ne sera lanc\xE9 qu'une seule fois
- \xE0 partir du script de haut niveau qui l'a invoqu\xE9.
+ Cette op\xE9ration additionne nos sc\xE9narios de tests et une unique suite
+ sous la premi\xE8re.
+ Quand un test \xE9choue, nous voyons le fil d'ariane avec l'enchainement.
+ Nous pouvons m\xEAme m\xE9langer groupes et tests librement en prenant
+ quand m\xEAme soin d'\xE9viter les inclusions en boucle.
<php><![CDATA[
<?php
- define('RUNNER', true);
+require_once('simpletest/autorun.php');
- require_once('file_group_test.php');
- $test = &new BigGroupTest('Big group');
- $test->addTestCase(new FileGroupTest());
- $test->addTestCase(...);
- $test->run(new HtmlReporter());
-?>
-]]></php>
- Comme les sc\xE9narios de test normaux,
- un <code>GroupTest</code> peut \xEAtre charg\xE9 avec la m\xE9thode
- <code>GroupTest::addTestFile()</code>.
-<php><![CDATA[
-<?php
- define('RUNNER', true);
-
- $test = &new BigGroupTest('Big group');<strong>
- $test->addTestFile('file_group_test.php');
- $test->addTestFile(...);</strong>
- $test->run(new HtmlReporter());
-?>
-]]></php>
- </p>
- </section>
- <section name="heritage" title="Int\xE9grer des sc\xE9narios de test h\xE9rit\xE9s">
- <p>
- Si vous avez d\xE9j\xE0 des tests unitaires pour votre code
- ou alors si vous \xE9tendez des classes externes
- qui ont d\xE9j\xE0 leurs propres tests, il y a peu de chances
- pour que ceux-ci soient d\xE9j\xE0 au format SimpleTest.
- Heureusement il est possible d'incorporer ces sc\xE9narios
- de test en provenance d'autres testeurs unitaires
- directement dans des groupes de test SimpleTest.
- </p>
- <p>
- Par exemple, supposons que nous ayons
- ce sc\xE9nario de test pr\xE9vu pour
- <a href="http://sourceforge.net/projects/phpunit">PhpUnit</a>
- dans le fichier <em>config_test.php</em>...
-<php><![CDATA[
-<strong>class ConfigFileTest extends TestCase {
- function ConfigFileTest() {
- $this->TestCase('Config file test');
+class BigTestSuite extends TestSuite {
+ function __construct() {
+ parent::__construct();
+ $this->addFile('file_tests.php');
+ <strong>$this->addFile('some_other_test.php');</strong>
}
-
- function testContents() {
- $config = new ConfigFile('test.conf');
- $this->assertRegexp('/me/', $config->getValue('username'));
- }
-}</strong>
-]]></php>
- Le groupe de tests peut le reconna\xEEtre \xE0 partir
- du moment o\xF9 nous mettons l'adaptateur appropri\xE9
- avant d'ajouter le fichier de test...
-<php><![CDATA[
-<?php
- require_once('simpletest/unit_tester.php');
- require_once('simpletest/reporter.php');<strong>
- require_once('simpletest/adapters/phpunit_test_case.php');</strong>
-
- $test = &new GroupTest('All file tests');<strong>
- $test->addTestFile('config_test.php');</strong>
- $test->run(new HtmlReporter());
+}
?>
]]></php>
- Il n'y a que deux adaptateurs,
- l'autre est pour le paquet testeur unitaire de
- <a href="http://pear.php.net/manual/en/package.php.phpunit.php">PEAR</a>...
-<php><![CDATA[
-<?php
- require_once('simpletest/unit_tester.php');
- require_once('simpletest/reporter.php');<strong>
- require_once('simpletest/adapters/pear_test_case.php');</strong>
-
- $test = &new GroupTest('All file tests');<strong>
- $test->addTestFile('some_pear_test_cases.php');</strong>
- $test->run(new HtmlReporter());
-?>
-]]></php>
- Les sc\xE9narios de test de PEAR peuvent \xEAtre
- librement m\xE9lang\xE9s avec ceux de SimpleTest
- mais vous ne pouvez pas utiliser les assertions
- de SimpleTest au sein des versions h\xE9rit\xE9es
- des sc\xE9narios de test. La raison ?
- Une simple v\xE9rification que vous ne rendez pas
- par accident vos sc\xE9narios de test compl\xE8tement
- d\xE9pendants de SimpleTest.
- Peut-\xEAtre que vous souhaitez publier
- votre biblioth\xE8que sur PEAR par exemple :
- \xE7a voudrait dire la livrer avec des sc\xE9narios de
- test compatibles avec PEAR::PhpUnit.
+ Petite pr\xE9cision, en cas de double inclusion, seule la premi\xE8re instance
+ sera lanc\xE9e.
</p>
- </section>
+ </section>
</content>
<internal>
<link>
@@ -321,10 +190,6 @@
Combiner des groupes des tests dans des
<a href="#plus-haut">groupes plus grands</a>.
</link>
- <link>
- Int\xE9grer des <a href="#heritage">sc\xE9narios de test h\xE9rit\xE9s</a>
- d'un autre type de PHPUnit.
- </link>
</internal>
<external>
<link>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pp...@us...> - 2011-05-23 21:16:53
|
Revision: 2021
http://simpletest.svn.sourceforge.net/simpletest/?rev=2021&view=rev
Author: pp11
Date: 2011-05-23 21:16:47 +0000 (Mon, 23 May 2011)
Log Message:
-----------
Editing the home page : SimpleTest 1.1alpha3 is out
Modified Paths:
--------------
simpletest/trunk/docs/simpletest.org/index.html
Modified: simpletest/trunk/docs/simpletest.org/index.html
===================================================================
--- simpletest/trunk/docs/simpletest.org/index.html 2011-05-23 21:11:15 UTC (rev 2020)
+++ simpletest/trunk/docs/simpletest.org/index.html 2011-05-23 21:16:47 UTC (rev 2021)
@@ -15,8 +15,8 @@
<div>
<a href="en/download.html"><img src="images/simpletest-download.png" width="306" height="109" border="0" id="simpletestdownload" alt="" /></a>
<p>
- SimpleTest 1.1alpha is
- <a href="http://sourceforge.net/projects/simpletest/files/simpletest/simpletest_1.1/simpletest_1.1alpha.tar.gz/download">
+ SimpleTest 1.1alpha3 is
+ <a href="http://sourceforge.net/projects/simpletest/files/simpletest/simpletest_1.1/simpletest_1.1alpha3.tar.gz/download">
available</a>.
This is the first PHP5 only release (PHP 5.0.5+ to be precise).
</p>
@@ -71,10 +71,10 @@
</div>
<div id="content">
<p id="news">
- [2010/10/29]
- <a href="http://sourceforge.net/projects/simpletest/files/simpletest/simpletest_1.1/simpletest_1.1alpha.tar.gz/download">
- SimpleTest 1.1alpha is released</a>.
- This is the first release that is PHP5 only and deals cleanly with notices.
+ [2011/05/23]
+ <a href="http://sourceforge.net/projects/simpletest/files/simpletest/simpletest_1.1/simpletest_1.1alpha3.tar.gz/download">
+ SimpleTest 1.1alpha3 is released</a>.
+ This maintenance release fixes a few bugs (especially in the release process).
Having spent nearly 2 years in trunk, this version is considered pretty stable.
</p>
<p>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pp...@us...> - 2011-05-23 21:11:22
|
Revision: 2020
http://simpletest.svn.sourceforge.net/simpletest/?rev=2020&view=rev
Author: pp11
Date: 2011-05-23 21:11:15 +0000 (Mon, 23 May 2011)
Log Message:
-----------
Keeping the french docs in synch
Modified Paths:
--------------
simpletest/trunk/docs/source/fr/browser_documentation.xml
simpletest/trunk/docs/source/fr/download_website.xml
simpletest/trunk/docs/source/fr/extension_eclipse.xml
simpletest/trunk/docs/source/fr/first_test_tutorial.xml
Modified: simpletest/trunk/docs/source/fr/browser_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/fr/browser_documentation.xml 2011-05-23 21:09:04 UTC (rev 2019)
+++ simpletest/trunk/docs/source/fr/browser_documentation.xml 2011-05-23 21:11:15 UTC (rev 2020)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $Id$ -->
<page title="Documentation sur le navigateur scriptable" here="Le navigateur scriptable">
- <synchronisation lang="en" version="1803" date="20/03/2008" maintainer="pp11" />
+ <synchronisation lang="en" version="2015" date="20/03/2008" maintainer="pp11" />
<long_title>Documentation SimpleTest : le composant de navigation web scriptable</long_title>
<content>
<introduction>
Modified: simpletest/trunk/docs/source/fr/download_website.xml
===================================================================
--- simpletest/trunk/docs/source/fr/download_website.xml 2011-05-23 21:09:04 UTC (rev 2019)
+++ simpletest/trunk/docs/source/fr/download_website.xml 2011-05-23 21:11:15 UTC (rev 2020)
@@ -1,14 +1,14 @@
<?xml version="1.0"?>
<!-- $Id$ -->
<page title="Télécharger SimpleTest" here="Télécharger SimpleTest">
- <synchronisation lang="en" version="2002" date="29/04/2011" maintainer="pp11" />
+ <synchronisation lang="en" version="2019" date="23/05/2011" maintainer="pp11" />
<long_title>Télécharger SimpleTest</long_title>
<content>
<section name="current-release" title="Version courante">
<p>
La version courante est :
- <a href="http://sourceforge.net/projects/simpletest/files/simpletest/simpletest_1.1/simpletest_1.1alpha2.tar.gz/download">
- SimpleTest v1.1alpha2</a>.
+ <a href="http://sourceforge.net/projects/simpletest/files/simpletest/simpletest_1.1/simpletest_1.1alpha3.tar.gz/download">
+ SimpleTest v1.1alpha3</a>.
</p>
<p>
Vous pouvez télécharger cette version depuis
Modified: simpletest/trunk/docs/source/fr/extension_eclipse.xml
===================================================================
--- simpletest/trunk/docs/source/fr/extension_eclipse.xml 2011-05-23 21:09:04 UTC (rev 2019)
+++ simpletest/trunk/docs/source/fr/extension_eclipse.xml 2011-05-23 21:11:15 UTC (rev 2020)
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!-- $Id$ -->
<page title="Plugin Eclipse pour SimpleTest" here="Plugin Eclipse">
- <synchronisation lang="en" version="1878" date="2ç/04/2011" maintainer="pp11" />
+ <synchronisation lang="en" version="2015" date="23/05/2011" maintainer="pp11" />
<long_title>Documentation du plugin Eclipse pour SimpleTest</long_title>
<content>
<section name="compat" title="Compatibilité">
Modified: simpletest/trunk/docs/source/fr/first_test_tutorial.xml
===================================================================
--- simpletest/trunk/docs/source/fr/first_test_tutorial.xml 2011-05-23 21:09:04 UTC (rev 2019)
+++ simpletest/trunk/docs/source/fr/first_test_tutorial.xml 2011-05-23 21:11:15 UTC (rev 2020)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $Id$ -->
<page title="Cr\xE9er un nouveau de sc\xE9nario de test" here="Tutorial : les tests unitaires en PHP">
- <synchronisation lang="en" version="1687" date="20/03/2008" maintainer="pp11" />
+ <synchronisation lang="en" version="1954" date="25/05/2011" maintainer="pp11" />
<long_title>Tutorial sur les tests unitaires en PHP - Cr\xE9er un exemple de sc\xE9nario de test en PHP</long_title>
<content>
<introduction>
@@ -47,87 +47,70 @@
OK, commen\xE7ons par \xE9crire un test...
<php><![CDATA[
<strong><?php
- if (! defined('SIMPLE_TEST')) {
- define('SIMPLE_TEST', 'simpletest/');
+require_once(dirname(__FILE__) . '/simpletest/autorun.php');
+
+class TestOfLogging extends UnitTestCase {
+ function testFirstLogMessagesCreatesFileIfNonexistent() {
}
- require_once(SIMPLE_TEST . 'autorun.php');
-
- class TestOfLogging extends UnitTestCase {
- function testCreatingNewFile() {
- }
- }
-
- $test = &new TestOfLogging();
- $test->run(new HtmlReporter());
+}
?></strong>
]]></php>
Pas \xE0 pas, voici ce qu'il veut dire.
</p>
- <p>
- La constante <code>SIMPLE_TEST</code> contient
- le chemin vers les classes de Simple Test \xE0 partir de ce fichier.
- Les classes pourraient \xEAtre plac\xE9es dans le path
- du fichier <em>php.ini</em> mais si vous \xEAtes sur un serveur mutualis\xE9,
- vous n'y aurez probablement pas acc\xE8s.
- Pour que tout le monde soit content,
- le chemin est d\xE9clar\xE9 explicitement dans le script de test.
- Plus tard nous verrons comment tout finira au m\xEAme endroit.
+ <p>
+ Le code <code>dirname(__FILE__)</code> s'assure juste
+ que le chemin vers SimpleTest d\xE9pend bien du fichier courant.
</p>
- <p>
- Qu'est-ce donc que ce fichier <em>autorun.php</em> ?
- Les biblioth\xE8ques de SimpleTest sont une bo\xEEte \xE0 outil
- pour cr\xE9er votre propre suite de tests standardis\xE9s.
- Elles peuvent \xEAtre utilis\xE9es "telles que" sans probl\xE8me,
- mais sont constitu\xE9es par des composants qui doivent \xEAtre assembl\xE9s.
- <em>autorun.php</em> est un composant sp\xE9cial :
- il fournit les parties "testeur unitaire" et "affichage".
- Il attrape les classes de test et les lance automagiquement.
+ <p>
+ Et donc qu'est-ce que ce fichier <em>autorun.php</em> ?
+ Ce fichier fait ce qu'on attend de lui : il va charger
+ les m\xE9thodes de <code>UnitTestCase</code>.
+ Ensuite il collecte toutes les classes de test pr\xE9sentes
+ dans le fichier courant et il les lancement automagiquement.
+ Il y arrive en cr\xE9ant un point de sortie.
+ On verra tout \xE7a en d\xE9tail quand on voudra modifier l'affichage.
</p>
<p>
- Il est probable que vous en viendrez \xE0 \xE9crire votre propre affichage
- et ajouter cette version par d\xE9faut est optionnel.
- SimpleTest inclut une classe d'affichage utilisable - et basique -
- appel\xE9e <code>HtmlReporter</code>.
- Sur des tests, elle peut enregistrer d\xE9buts, fins, erreurs, succ\xE8s et \xE9chec.
- Elle affiche ces informations au plus vite, au cas o\xF9 le code
- du test fait planter le script et masque la source d'\xE9chec.
- </p>
- <p>
Les tests eux-m\xEAmes sont rassembl\xE9s dans une classe de sc\xE9nario de test.
Cette derni\xE8re est typiquement une extension de
la classe <code>UnitTestCase</code>.
- Quand le test est ex\xE9cut\xE9, elle cherche les m\xE9thodes
+ Quand le test est ex\xE9cut\xE9 par l'autorunner, elle cherche les m\xE9thodes
commen\xE7ant par "test" et les lancent.
+ Toutes ces m\xE9thodes seront ex\xE9cut\xE9es dans l'ordre
+ de leur d\xE9finition dans la classe.
+
Notre seule m\xE9thode de test pour l'instant est appell\xE9e
<code>testCreatingNewFile()</code> mais elle est encore vide.
</p>
+ <p>
+ Notre unique m\xE9thode test s'appelle
+ <code>testFirstLogMessagesCreatesFileIfNonexistent()</code>.
+ Et il n'y a rien dedans pour le moment.
+ </p>
<p>
- Une m\xE9thode vide ne fait rien. Nous avons besoin d'y placer du code.
- La classe <code>UnitTestCase</code> g\xE9n\xE8re des \xE9v\xE8nements
- de test \xE0 son ex\xE9cution :
- ces \xE9v\xE8nements sont envoy\xE9s vers un observateur.
+ Cette d\xE9finition d'une m\xE9thode vide ne fait rien toute seule.
+ Nous devons bien s\xFBr lui ajouter du code.
+ La classe <code>UnitTestCase</code>
+ va typiquement g\xE9n\xE9r\xE9 des \xE9v\xE8nements de test quand elle sera ex\xE9cut\xE9e
+ et ces \xE9v\xE8nements seront ensuite envoy\xE9s \xE0 un rapporteur / observateur
+ utilisant les m\xE9thodes h\xE9rit\xE9es de
+ <code>UnitTestCase</code>.
</p>
<p>
Et pour ajouter du code de test...
<php><![CDATA[
<?php
- if (! defined('SIMPLE_TEST')) {
- define('SIMPLE_TEST', 'simpletest/');
- }
- require_once(SIMPLE_TEST . 'autorun.php');
- require_once('../classes/log.php');</strong>
+require_once(dirname(__FILE__) . '/simpletest/autorun.php');
+require_once('../classes/log.php');</strong>
- class TestOfLogging extends UnitTestCase {
- function testCreatingNewFile() {<strong>
- @unlink('../temp/test.log');
- $log = new Log('../temp/test.log');
- $log->message('Should write this to a file');
- $this->assertTrue(file_exists('../temp/test.log'));</strong>
- }
+class TestOfLogging extends UnitTestCase {
+ function testFirstLogMessagesCreatesFileIfNonexistent() {<strong>
+ @unlink(dirname(__FILE__) . '/../temp/test.log');
+ $log = new Log(dirname(__FILE__) . '/../temp/test.log');
+ $log->message('Should write this to a file');
+ $this->assertTrue(file_exists(dirname(__FILE__) . '/../temp/test.log'));</strong>
}
-
- $test = &new TestOfLogging();
- $test->run(new HtmlReporter());
+}
?>
]]></php>
</p>
@@ -140,7 +123,15 @@
Parfois moins en utilisant des artefacts
de test que nous d\xE9couvrirons plus tard.
</p>
- <p>
+ <p>
+ Vous pourriez aussi vous dire que
+ <code>testFirstLogMessagesCreatesFileIfNonexistent</code>
+ est un nom de m\xE9thode fichtrement trop long.
+ D'ordinaire ce serait exact, mais ici c'est une bonne chose.
+ Nous n'aurons plus jamais \xE0 \xE9crire ce nom, et nous n'aurons
+ pas besoin non plus d'ajouter des commentaires ou des sp\xE9cifications.
+ </p>
+ <p>
Nous devons maintenant prendre nos premi\xE8res d\xE9cisions.
Notre fichier de test s'appelle <em>log_test.php</em>
(n'importe quel nom ferait l'affaire) :
@@ -180,23 +171,31 @@
ou un \xE9chec dans le cas contraire.
Nous pouvons avoir un ensemble d'assertions diff\xE9rentes
et encore plus si nous \xE9tendons
- nos sc\xE9narios de test classique. Voici la liste...
+ nos sc\xE9narios de test classique.
+ </p>
+ <p>Voici la liste...
<table><tbody>
<tr><td><code>assertTrue($x)</code></td><td>Echoue si $x est faux</td></tr>
<tr><td><code>assertFalse($x)</code></td><td>Echoue si $x est vrai</td></tr>
<tr><td><code>assertNull($x)</code></td><td>Echoue si $x est initialis\xE9</td></tr>
<tr><td><code>assertNotNull($x)</code></td><td>Echoue si $x n'est pas initialis\xE9</td></tr>
<tr><td><code>assertIsA($x, $t)</code></td><td>Echoue si $x n'est pas de la classe ou du type $t</td></tr>
+ <tr><td><code>assertNotA($x, $t)</code></td><td>Echoue sauf si $x n'est pas de la classe ou du type $t</td></tr>
<tr><td><code>assertEqual($x, $y)</code></td><td>Echoue si $x == $y est faux</td></tr>
<tr><td><code>assertNotEqual($x, $y)</code></td><td>Echoue si $x == $y est vrai</td></tr>
+ <tr><td><code>assertWithinMargin($x, $y, $margin)</code></td><td>Echoue sauf si $x et $y sont s\xE9par\xE9s par moins que $margin</td></tr>
+ <tr><td><code>assertOutsideMargin($x, $y, $margin)</code></td><td>Echoue sauf si $x et $y sont suffisamment diff\xE9rents</td></tr>
<tr><td><code>assertIdentical($x, $y)</code></td><td>Echoue si $x === $y est faux</td></tr>
<tr><td><code>assertNotIdentical($x, $y)</code></td><td>Echoue si $x === $y est vrai</td></tr>
<tr><td><code>assertReference($x, $y)</code></td><td>Echoue sauf si $x et $y sont la m\xEAme variable</td></tr>
<tr><td><code>assertCopy($x, $y)</code></td><td>Echoue si $x et $y sont la m\xEAme variable</td></tr>
- <tr><td><code>assertWantedPattern($p, $x)</code></td><td>Echoue sauf si l'expression rationnelle $p capture $x</td></tr>
- <tr><td><code>assertNoUnwantedPattern($p, $x)</code></td><td>Echoue si l'expression rationnelle $p capture $x</td></tr>
+ <tr><td><code>assertSame($x, $y)</code></td><td>Echoue sauf si $x et $y sont le m\xEAme objet</td></tr>
+ <tr><td><code>assertClone($x, $y)</code></td><td>Echoue sauf si $x et $y sont identiques, mais aussi des objets s\xE9par\xE9s</td></tr>
+ <tr><td><code>assertPattern($p, $x)</code></td><td>Echoue sauf si l'expression rationnelle $p capture $x</td></tr>
+ <tr><td><code>assertNoPattern($p, $x)</code></td><td>Echoue si l'expression rationnelle $p capture $x</td></tr>
<tr><td><code>assertNoErrors()</code></td><td>Echoue si une erreur PHP arrive</td></tr>
- <tr><td><code>assertError($x)</code></td><td>Echoue si aucune erreur ou message incorrect de PHP n'arrive</td></tr>
+ <tr><td><code>expectError($e)</code></td><td>D\xE9clenche un \xE9chec si cette erreur n'arrive pas avant la fin du test</td></tr>
+ <tr><td><code>expectException($e)</code></td><td>D\xE9clenche un \xE9chec si cette exception n'est pas lev\xE9 avant la fin du test</td></tr>
</tbody></table>
</p>
<p>
@@ -205,7 +204,7 @@
Qu'est-ce qui devrait arriver ?
Il devrait planter...
<div class="demo">
- <b>Fatal error</b>: Failed opening required '../classes/log.php' (include_path='') in <b>/home/marcus/projects/lastcraft/tutorial_tests/Log/tests/log_test.php</b> on line <b>7</b>
+ <b>Fatal error</b>: Failed opening required '../classes/log.php' (include_path='') in <b>/home/marcus/projects/lastcraft/tutorial_tests/Log/tests/log_test.php</b> on line <b>7</b>
</div>
La raison ? Nous n'avons pas encore cr\xE9\xE9 <em>log.php</em>.
</p>
@@ -228,19 +227,23 @@
et seulement ensuite le code qui passe ce test.
N'importe quel bout de code. Juste pour qu'il passe.
</p>
- <p>
+ <p>
Vous \xE9crivez un autre test et puis de nouveau du code qui passe.
Vous aurez alors un peu de duplication et g\xE9n\xE9ralement
- du code pas tr\xE8s propre. Vous remaniez (factorisez)
+ du code pas tr\xE8s propre. Vous remaniez (ou "factorisez")
ce code-l\xE0 en vous assurant que les tests continuent \xE0 passer :
vous ne pouvez rien casser.
Une fois que le code est le plus propre possible
vous \xEAtes pr\xEAt \xE0 ajouter des nouvelles fonctionnalit\xE9s.
Il suffit juste de rajouter des nouveaux tests et de recommencer
le cycle une nouvelle fois.
-
+ Votre fonctionnalit\xE9 se cr\xE9e en essayant de faire passer les tests
+ qui la d\xE9finissent.
</p>
<p>
+ Pensez-y comme d'une sp\xE9cification \xE9x\xE9cutable, cr\xE9\xE9e en continue.
+ </p>
+ <p>
Il s'agit d'une approche assez radicale et
j'ai parfois l'impression qu'elle est incompl\xE8te.
Mais il s'agit d'un moyen efficace pour expliquer
@@ -250,53 +253,51 @@
l'heure est venue d'\xE9crire du code dans <em>log.php</em>...
<php><![CDATA[
<strong><?php
-
- class Log {
+class Log {
+
+ function __construct($file_path) {
+ }
- function Log($file_path) {
- }
-
- function message($message) {
- }
+ function message($message) {
}
+}
?></strong>
]]></php>
Il s'agit l\xE0 du minimum que nous puissions
faire pour \xE9viter une erreur fatale de PHP.
Et maintenant la r\xE9ponse devient...
<div class="demo">
- <h1>testoflogging</h1>
- <span class="fail">Fail</span>: testcreatingnewfile->True assertion failed.<br />
+ <h1>TestOfLogging</h1>
+ <span class="fail">Fail</span>: testFirstLogMessagesCreatesFileIfNonexistent->True assertion failed.<br />
<div style="padding: 8px; margin-top: 1em; background-color: red; color: white;">1/1 test cases complete.
- <strong>0</strong> passes and <strong>1</strong> fails.</div>
+ <strong>0</strong> passes, <strong>1</strong> fails and <strong>0</strong> exceptions.</div>
</div>
- "testoflogging" a \xE9chou\xE9.
- Parmi les d\xE9fauts de PHP on trouve cette f\xE2cheuse tendance
- \xE0 transformer int\xE9rieurement les noms de classes
- et de m\xE9thodes en minuscules.
+ "TestOfLogging" a \xE9chou\xE9.
SimpleTest utilise ces noms par d\xE9faut pour d\xE9crire
les tests mais nous pouvons les remplacer par nos propres noms.
<php><![CDATA[
class TestOfLogging extends UnitTestCase {
- <strong>function TestOfLogging() {
- $this->UnitTestCase('Log class test');
+ <strong>function __construct() {
+ parent::__construct('Log test');
}</strong>
- function testCreatingNewFile() {
- @unlink('../temp/test.log');
- $log = new Log('../temp/test.log');
- $log->message('Should write this to a file');<strong>
- $this->assertTrue(file_exists('../temp/test.log'), 'File created');</strong>
+
+ function testFirstLogMessagesCreatesFileIfNonexistent() {<strong>
+ @unlink(dirname(__FILE__) . '/../temp/test.log');
+ $log = new Log(dirname(__FILE__) . '/../temp/test.log');
+ $log->message('Should write this to a file');
+ $this->assertTrue(file_exists(dirname(__FILE__) . '/../temp/test.log'));</strong>
}
}
]]></php>
Ce qui donne...
<div class="demo">
- <h1>Log class test</h1>
- <span class="fail">Fail</span>: testcreatingnewfile->File created.<br />
+ <h1>Log test</h1>
+ <span class="fail">Fail</span>: testFirstLogMessagesCreatesFileIfNonexistent->File created.<br />
<div style="padding: 8px; margin-top: 1em; background-color: red; color: white;">1/1 test cases complete.
- <strong>0</strong> passes and <strong>1</strong> fails.</div>
+ <strong>0</strong> passes, <strong>1</strong> fails and <strong>0</strong> exceptions.</div>
</div>
- Par contre pour le nom des m\xE9thodes il n'y a rien \xE0 faire, d\xE9sol\xE9.
+ Si vous voulez changer le nom du test, alors il faudra le faire en changeant
+ la sortie du rapporteur. Nous y reviendrons plus tard.
</p>
<p>
Les messages d'un test comme ceux-ci ressemblent
@@ -317,19 +318,19 @@
Nous n'allons pas aussi lentement donc...
<php><![CDATA[
<?php
- class Log {<strong>
- var $_file_path;</strong>
+class Log {<strong>
+ var $path;</strong>
- function Log($file_path) {<strong>
- $this->_file_path = $file_path;</strong>
- }
+ function __construct($path) {<strong>
+ $this->path = $path;</strong>
+ }
- function message($message) {<strong>
- $file = fopen($this->_file_path, 'a');
- fwrite($file, $message . "\n");
- fclose($file);</strong>
- }
+ function message($message) {<strong>
+ $file = fopen($this->path, 'a');
+ fwrite($file, $message . "\n");
+ fclose($file);</strong>
}
+}
?>
]]></php>
Au total, pas moins de 4 \xE9checs ont \xE9t\xE9 n\xE9cessaire
@@ -340,11 +341,13 @@
N'importe laquelle de ces erreurs aurait pu m'occuper
pendant plusieurs heures si elle \xE9tait apparue plus tard
mais c'est bien pour ces cas l\xE0 qu'on teste.
+ </p>
+ <p>
Avec les corrections ad\xE9quates, \xE7a donne...
<div class="demo">
- <h1>Log class test</h1>
+ <h1>Log test</h1>
<div style="padding: 8px; margin-top: 1em; background-color: green; color: white;">1/1 test cases complete.
- <strong>1</strong> passes and <strong>0</strong> fails.</div>
+ <strong>1</strong> passes, <strong>0</strong> fails and <strong>0</strong> exceptions.</div>
</div>
\xC7a marche!
</p>
@@ -371,23 +374,21 @@
nous allons juste ajouter un test pour \xE7a.
<php><![CDATA[
class TestOfLogging extends UnitTestCase {
- function TestOfLogging() {
- $this->UnitTestCase('Log class test');
- }
- function testCreatingNewFile() {
- @unlink('../temp/test.log');
- $log = new Log('../temp/test.log');<strong>
- $this->assertFalse(file_exists('../temp/test.log'), 'No file created before first message');</strong>
+ function testFirstLogMessagesCreatesFileIfNonexistent() {
+ @unlink(dirname(__FILE__) . '/../temp/test.log');
+ $log = new Log(dirname(__FILE__) . '/../temp/test.log');<strong>
+ $this->assertFalse(file_exists(dirname(__FILE__) . '/../temp/test.log'));</strong>
$log->message('Should write this to a file');
- $this->assertTrue(file_exists('../temp/test.log'), 'File created');
+ $this->assertTrue(file_exists(dirname(__FILE__) . '/../temp/test.log'));
+
}
}
]]></php>
...et d\xE9couvrir que \xE7a marche d\xE9j\xE0...
<div class="demo">
- <h1>Log class test</h1>
+ <h1>TestOfLogging</h1>
<div style="padding: 8px; margin-top: 1em; background-color: green; color: white;">1/1 test cases complete.
- <strong>2</strong> passes and <strong>0</strong> fails.</div>
+ <strong>2</strong> passes, <strong>0</strong> fails and <strong>0</strong> exceptions.</div>
</div>
En fait je savais que \xE7a allait \xEAtre le cas.
J'ajoute ce test de confirmation tout d'abord pour
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pp...@us...> - 2011-05-23 21:09:11
|
Revision: 2019
http://simpletest.svn.sourceforge.net/simpletest/?rev=2019&view=rev
Author: pp11
Date: 2011-05-23 21:09:04 +0000 (Mon, 23 May 2011)
Log Message:
-----------
SimpleTest 1.1alpha3 is out... Let's hurry up now !
Modified Paths:
--------------
simpletest/trunk/docs/source/en/download_website.xml
Modified: simpletest/trunk/docs/source/en/download_website.xml
===================================================================
--- simpletest/trunk/docs/source/en/download_website.xml 2011-04-30 03:32:40 UTC (rev 2018)
+++ simpletest/trunk/docs/source/en/download_website.xml 2011-05-23 21:09:04 UTC (rev 2019)
@@ -6,8 +6,8 @@
<section name="current-release" title="Current release">
<p>
The current release is :
- <a href="http://sourceforge.net/projects/simpletest/files/simpletest/simpletest_1.1/simpletest_1.1alpha2.tar.gz/download">
- SimpleTest v1.1alpha2</a>.
+ <a href="http://sourceforge.net/projects/simpletest/files/simpletest/simpletest_1.1/simpletest_1.1alpha3.tar.gz/download">
+ SimpleTest v1.1alpha3</a>.
</p>
<p>
You can download this version from
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: SourceForge.net <no...@so...> - 2011-05-15 21:07:22
|
Bugs item #3302508, was opened at 2011-05-15 10:14 Message generated for change (Comment added) made by stevenbalthazor You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=3302508&group_id=76550 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Eclipse plugin Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nicolas (nvergnes) Assigned to: Steven Balthazor (stevenbalthazor) Summary: Problème de parsing dans la version 1.1alpha2 Initial Comment: Dans la configuration de Run de type SimpleTest avec Eclipse, on renseigne le champ "Test File". Dans mon cas j'ai saisi : http://localhost/testPhp/tests/Test.php Lors du run, la console me renvoi : echo "<?php $path='/home/nvergnes/SimpleTestPhp'; ini_set('include_path', get_include_path().PATH_SEPARATOR . realpath($path)); ini_set('html_errors','0'); $fullpath = realpath('http::/localhost/testPhp/tests/Test.php'); $pathparts = pathinfo($fullpath); $filename = $pathparts['basename']; include_once('xml.php'); include_once('unit_tester.php'); include_once('mock_objects.php'); include_once('test_case.php'); include_once('invoker.php'); $test=new GroupTest($filename); $test->addTestFile($fullpath); $test->run(new XmlReporter()); ?>" | "/usr/bin/php" -q -c "/etc/php5/apache2/php.ini" Il semble y avoir un problème de parsing sur $fullpath. 2 captures d'écran permettent d'illustrer le problème. ---------------------------------------------------------------------- >Comment By: Steven Balthazor (stevenbalthazor) Date: 2011-05-15 14:07 Message: The problem appears to be how the plugin is detecting the location of the file under test (Test.php) - it appears to believe that this file is located at http::/localhost/testPhp/tests/Test.php. I am not sure how it would ever determine that to be the location of the file (that is an invalid url - it should be http:// not http::/). I am not sure how you are editing a file from an http;// location, but the eclipse plugin does not support this - please try again with a file located on the local filesystem. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=3302508&group_id=76550 |
|
From: SourceForge.net <no...@so...> - 2011-05-15 17:14:51
|
Bugs item #3302508, was opened at 2011-05-15 19:14 Message generated for change (Tracker Item Submitted) made by nvergnes You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=3302508&group_id=76550 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Eclipse plugin Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nicolas (nvergnes) Assigned to: Steven Balthazor (stevenbalthazor) Summary: Problème de parsing dans la version 1.1alpha2 Initial Comment: Dans la configuration de Run de type SimpleTest avec Eclipse, on renseigne le champ "Test File". Dans mon cas j'ai saisi : http://localhost/testPhp/tests/Test.php Lors du run, la console me renvoi : echo "<?php $path='/home/nvergnes/SimpleTestPhp'; ini_set('include_path', get_include_path().PATH_SEPARATOR . realpath($path)); ini_set('html_errors','0'); $fullpath = realpath('http::/localhost/testPhp/tests/Test.php'); $pathparts = pathinfo($fullpath); $filename = $pathparts['basename']; include_once('xml.php'); include_once('unit_tester.php'); include_once('mock_objects.php'); include_once('test_case.php'); include_once('invoker.php'); $test=new GroupTest($filename); $test->addTestFile($fullpath); $test->run(new XmlReporter()); ?>" | "/usr/bin/php" -q -c "/etc/php5/apache2/php.ini" Il semble y avoir un problème de parsing sur $fullpath. 2 captures d'écran permettent d'illustrer le problème. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=3302508&group_id=76550 |
|
From: SourceForge.net <no...@so...> - 2011-05-06 13:16:33
|
Bugs item #3298274, was opened at 2011-05-06 15:16 Message generated for change (Tracker Item Submitted) made by aaberer You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=3298274&group_id=76550 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Unit test framework Group: v1.0 (example) Status: Open Resolution: None Priority: 5 Private: No Submitted By: Alexander Aberer (aaberer) Assigned to: Nobody/Anonymous (nobody) Summary: Problem with SimpleFileLoader and global variables Initial Comment: We use SimpleTest for testing our software components which are mostly based on the Prado PHP framework (http://www.pradoframework.com). This is why some of our tests depend that the Prado framework is included and a global Prado application is started. Does test files that depend on the Prado application include some code in the header which initializes the framework if required. This however causes a problem with SimpleFileLoader::load() where the test files are included: The contents of $existing_globals is empty after the framework is initialized (Prado is a bit demanding... ;)). We fixed this problem by patching SimpleFileLoader::load() in the file test_case.php. Our solution was it to define $existing_globals as a member variable. As I see it the change is only minor and it did not break anything else for us. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=3298274&group_id=76550 |
|
From: <ma...@us...> - 2011-04-30 03:32:46
|
Revision: 2018
http://simpletest.svn.sourceforge.net/simpletest/?rev=2018&view=rev
Author: maetl_
Date: 2011-04-30 03:32:40 +0000 (Sat, 30 Apr 2011)
Log Message:
-----------
supressed error due to warning about mutating an array while in the sorting process
Modified Paths:
--------------
simpletest/trunk/extensions/treemap_reporter/treemap_recorder.php
Modified: simpletest/trunk/extensions/treemap_reporter/treemap_recorder.php
===================================================================
--- simpletest/trunk/extensions/treemap_reporter/treemap_recorder.php 2011-04-30 00:42:45 UTC (rev 2017)
+++ simpletest/trunk/extensions/treemap_reporter/treemap_recorder.php 2011-04-30 03:32:40 UTC (rev 2018)
@@ -202,7 +202,7 @@
* Return list of child nodes from direct edges.
*/
function getChildren() {
- uksort($this->_children, array($this, 'compareChildren'));
+ @uksort($this->_new_children, array($this, 'compareChildren'));
return $this->_children;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ma...@us...> - 2011-04-30 00:42:53
|
Revision: 2017
http://simpletest.svn.sourceforge.net/simpletest/?rev=2017&view=rev
Author: maetl_
Date: 2011-04-30 00:42:45 +0000 (Sat, 30 Apr 2011)
Log Message:
-----------
removing long out-of-date scripts that don't work anymore
Removed Paths:
-------------
simpletest/trunk/packages/README
simpletest/trunk/packages/generate_package.php
simpletest/trunk/packages/package.xml
simpletest/trunk/packages/pear_package_create.php
Deleted: simpletest/trunk/packages/README
===================================================================
--- simpletest/trunk/packages/README 2011-04-30 00:35:07 UTC (rev 2016)
+++ simpletest/trunk/packages/README 2011-04-30 00:42:45 UTC (rev 2017)
@@ -1,26 +0,0 @@
-HOW TO MAKE A PACKAGE
-
-1. First make sure PEAR_PackageFileManager is installed;
-(version 1.2.0 was used)
-
-$ pear install PEAR_PackageFileManager
-
-2. Edit the simpletest/packages/pear_package_create.php file (see comments for what
-needs changing).
-
-3. Run the simpletest/packages/pear_package_create.php script, piping the output
-to the file you want to create e.g.;
-
-$ ./pear_package_create.php > package.xml
-
-4. Copy the package.xml to the root of Simpletest.
-
-5. From the root of Simpletest type;
-
-$ pear package package.xml
-
-This creates the package zip
-
-6. Install with;
-
-$ pear install SimpleTest-x.x.x.tgz
\ No newline at end of file
Deleted: simpletest/trunk/packages/generate_package.php
===================================================================
--- simpletest/trunk/packages/generate_package.php 2011-04-30 00:35:07 UTC (rev 2016)
+++ simpletest/trunk/packages/generate_package.php 2011-04-30 00:42:45 UTC (rev 2017)
@@ -1,54 +0,0 @@
-<?php
-require_once('PEAR/PackageFileManager2.php');
-PEAR::setErrorHandling(PEAR_ERROR_DIE);
-
-$packagefile = "simpletest";
-
-$options = array(
- 'filelistgenerator' => 'svn',
- 'simpleoutput' => true,
- 'baseinstalldir' => 'simpletest',
- 'packagedirectory' => dirname(__FILE__) . '/../',
- 'clearcontents' => true,
- 'ignore' => array('TODO.xml', 'VERSION', 'docs/', 'tutorials/', 'packages/', '.svn'),
- 'dir_roles' => array(
- 'test' => 'test'
- )
-);
-
-$packagexml = PEAR_PackageFileManager2::importOptions($packagefile, $options);
-$packagexml->setPackageType('php');
-$packagexml->setPackage('simpletest');
-$packagexml->setSummary('PHP Unit Tester');
-$packagexml->setDescription("Unit testing, mock objects and web testing framework for PHP");
-
-// update this! do we have a default channel server?
-$packagexml->setChannel('pear.php.net');
-$packagexml->setUri('http://os.coretxt.net.nz/simpletest-1.1');
-
-$notes = file_get_contents(dirname(__FILE__).'/../README');
-$packagexml->setNotes($notes);
-
-$packagexml->setPhpDep('5.0.5');
-$packagexml->setPearinstallerDep('1.4.0');
-$packagexml->addPackageDepWithChannel('required', 'PEAR', 'pear.php.net', '1.4.0');
-$packagexml->addMaintainer('lead', 'lastcraft', 'Marcus Baker', 'ma...@la...');
-$packagexml->setLicense('LGPL', 'http://www.gnu.org/licenses/lgpl-2.1.html');
-
-preg_match("/([0-9\.]+)([a-z]+)/", file_get_contents(dirname(__FILE__).'/../VERSION'), $version);
-$packagexml->setAPIVersion($version[1]);
-$packagexml->setReleaseVersion($version[1]);
-$packagexml->setReleaseStability($version[2]);
-$packagexml->setAPIStability($version[2]);
-
-$packagexml->addRelease();
-$packagexml->generateContents();
-
-
-if (isset($_GET['make']) || (isset($_SERVER['argv']) && @$_SERVER['argv'][1] == 'make')) {
- $packagexml->writePackageFile();
-} else {
- $packagexml->debugPackageFile();
-}
-
-?>
\ No newline at end of file
Deleted: simpletest/trunk/packages/package.xml
===================================================================
--- simpletest/trunk/packages/package.xml 2011-04-30 00:35:07 UTC (rev 2016)
+++ simpletest/trunk/packages/package.xml 2011-04-30 00:42:45 UTC (rev 2017)
@@ -1,706 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
-<package version="1.0">
- <name>SimpleTest</name>
- <summary>Unit testing, mock objects and web testing framework for PHP.</summary>
- <description>The heart of SimpleTest is a testing framework built around test case classes.
-These are written as extensions of base test case classes, each extended with
-methods that actually contain test code. Top level test scripts then invoke
-the run() methods on every one of these test cases in order. Each test
-method is written to invoke various assertions that the developer expects to
-be true such as assertEqual(). If the expectation is correct, then a
-successful result is dispatched to the observing test reporter, but any
-failure triggers an alert and a description of the mismatch.
-
-These tools are designed for the developer. Tests are written in the PHP
-language itself more or less as the application itself is built. The advantage
-of using PHP itself as the testing language is that there are no new languages
-to learn, testing can start straight away, and the developer can test any part
-of the code. Basically, all parts that can be accessed by the application code
-can also be accessed by the test code if they are in the same language. </description>
- <maintainers>
- <maintainer>
- <user>lastcraft</user>
- <name>Marcus Baker</name>
- <email>ma...@la...</email>
- <role>lead</role>
- </maintainer>
- <maintainer>
- <user>jsweat</user>
- <name>Jason Sweat</name>
- <email>jsw...@ya...</email>
- <role>helper</role>
- </maintainer>
- <maintainer>
- <user>hfuecks</user>
- <name>Harry Fuecks</name>
- <email>hf...@ph...</email>
- <role>helper</role>
- </maintainer>
- </maintainers>
- <release>
- <version>0.9.4</version>
- <date>2004-02-20</date>
- <license>The Open Group Test Suite License</license>
- <state>beta</state>
- <notes>This is the final version of the PHP unit and web testing tool before the
-stable release 1.0 version. It features many improvements to the HTML form
-parsing and exposure of the underlying web browser. There are also numerous
-minor improvements and bug fixes.</notes>
- <provides type="class" name="PHPUnit_TestCase" extends="SimpleTestCase" />
- <provides type="function" name="PHPUnit_TestCase::assertEquals" />
- <provides type="function" name="PHPUnit_TestCase::assertNotNull" />
- <provides type="function" name="PHPUnit_TestCase::assertNull" />
- <provides type="function" name="PHPUnit_TestCase::assertSame" />
- <provides type="function" name="PHPUnit_TestCase::assertNotSame" />
- <provides type="function" name="PHPUnit_TestCase::assertTrue" />
- <provides type="function" name="PHPUnit_TestCase::assertFalse" />
- <provides type="function" name="PHPUnit_TestCase::assertRegExp" />
- <provides type="function" name="PHPUnit_TestCase::assertType" />
- <provides type="function" name="PHPUnit_TestCase::setLooselyTyped" />
- <provides type="function" name="PHPUnit_TestCase::countTestCases" />
- <provides type="function" name="PHPUnit_TestCase::getName" />
- <provides type="function" name="PHPUnit_TestCase::setName" />
- <provides type="class" name="TestCase" extends="SimpleTestCase" />
- <provides type="function" name="TestCase::assert" />
- <provides type="function" name="TestCase::assertEquals" />
- <provides type="function" name="TestCase::assertEqualsMultilineStrings" />
- <provides type="function" name="TestCase::assertRegexp" />
- <provides type="function" name="TestCase::error" />
- <provides type="function" name="TestCase::name" />
- <provides type="class" name="WebUnitReporter" extends="SimpleReporter" />
- <provides type="function" name="WebUnitReporter::paintHeader" />
- <provides type="function" name="WebUnitReporter::sendNoCacheHeaders" />
- <provides type="function" name="WebUnitReporter::paintFooter" />
- <provides type="function" name="WebUnitReporter::paintFormattedMessage" />
- <provides type="function" name="WebUnitReporter::paintGroupStart" />
- <provides type="function" name="WebUnitReporter::paintCaseStart" />
- <provides type="function" name="WebUnitReporter::paintMethodStart" />
- <provides type="function" name="WebUnitReporter::paintMethodEnd" />
- <provides type="function" name="WebUnitReporter::paintFail" />
- <provides type="function" name="WebUnitReporter::paintException" />
- <provides type="function" name="WebUnitReporter::outputScript" />
- <provides type="function" name="WebUnitReporter::toJsString" />
- <provides type="class" name="SimpleBrowser" />
- <provides type="function" name="SimpleBrowser::getBaseUrl" />
- <provides type="function" name="SimpleBrowser::getCurrentUrl" />
- <provides type="function" name="SimpleBrowser::restartSession" />
- <provides type="function" name="SimpleBrowser::ageCookies" />
- <provides type="function" name="SimpleBrowser::setCookie" />
- <provides type="function" name="SimpleBrowser::getCookieValue" />
- <provides type="function" name="SimpleBrowser::getBaseCookieValue" />
- <provides type="function" name="SimpleBrowser::setMaximumRedirects" />
- <provides type="function" name="SimpleBrowser::get" />
- <provides type="function" name="SimpleBrowser::head" />
- <provides type="function" name="SimpleBrowser::post" />
- <provides type="function" name="SimpleBrowser::getMimeType" />
- <provides type="function" name="SimpleBrowser::getResponseCode" />
- <provides type="function" name="SimpleBrowser::getContent" />
- <provides type="function" name="SimpleBrowser::getTitle" />
- <provides type="function" name="SimpleBrowser::setField" />
- <provides type="function" name="SimpleBrowser::getField" />
- <provides type="function" name="SimpleBrowser::clickSubmit" />
- <provides type="function" name="SimpleBrowser::submitFormById" />
- <provides type="function" name="SimpleBrowser::clickLink" />
- <provides type="function" name="SimpleBrowser::clickLinkById" />
- <provides type="class" name="SimpleDumper" />
- <provides type="function" name="SimpleDumper::describeValue" />
- <provides type="function" name="SimpleDumper::getType" />
- <provides type="function" name="SimpleDumper::describeDifference" />
- <provides type="function" name="SimpleDumper::clipString" />
- <provides type="function" name="SimpleDumper::dump" />
- <provides type="class" name="SimpleErrorQueue" />
- <provides type="function" name="SimpleErrorQueue::add" />
- <provides type="function" name="SimpleErrorQueue::extract" />
- <provides type="function" name="SimpleErrorQueue::clear" />
- <provides type="function" name="SimpleErrorQueue::isEmpty" />
- <provides type="function" name="SimpleErrorQueue::instance" />
- <provides type="function" name="SimpleErrorQueue::getSeverityAsString" />
- <provides type="function" name="simpleTestErrorHandler" />
- <provides type="class" name="SimpleExpectation" />
- <provides type="class" name="EqualExpectation" extends="SimpleExpectation" />
- <provides type="class" name="NotEqualExpectation" extends="EqualExpectation" />
- <provides type="class" name="IdenticalExpectation" extends="EqualExpectation" />
- <provides type="class" name="NotIdenticalExpectation" extends="IdenticalExpectation" />
- <provides type="class" name="WantedPatternExpectation" extends="SimpleExpectation" />
- <provides type="class" name="UnwantedPatternExpectation" extends="WantedPatternExpectation" />
- <provides type="class" name="IsAExpectation" extends="SimpleExpectation" />
- <provides type="class" name="MethodExistsExpectation" extends="SimpleExpectation" />
- <provides type="function" name="SimpleExpectation::test" />
- <provides type="function" name="SimpleExpectation::testMessage" />
- <provides type="function" name="EqualExpectation::test" />
- <provides type="function" name="EqualExpectation::testMessage" />
- <provides type="function" name="NotEqualExpectation::test" />
- <provides type="function" name="NotEqualExpectation::testMessage" />
- <provides type="function" name="IdenticalExpectation::test" />
- <provides type="function" name="IdenticalExpectation::testMessage" />
- <provides type="function" name="NotIdenticalExpectation::test" />
- <provides type="function" name="NotIdenticalExpectation::testMessage" />
- <provides type="function" name="WantedPatternExpectation::test" />
- <provides type="function" name="WantedPatternExpectation::testMessage" />
- <provides type="function" name="UnwantedPatternExpectation::test" />
- <provides type="function" name="UnwantedPatternExpectation::testMessage" />
- <provides type="function" name="IsAExpectation::test" />
- <provides type="function" name="IsAExpectation::testMessage" />
- <provides type="function" name="MethodExistsExpectation::test" />
- <provides type="function" name="MethodExistsExpectation::testMessage" />
- <provides type="class" name="SimpleFrameset" />
- <provides type="function" name="SimpleFrameset::getTitle" />
- <provides type="class" name="SimpleUrl" />
- <provides type="class" name="SimpleCookie" />
- <provides type="class" name="SimpleHttpRequest" />
- <provides type="class" name="SimpleHttpPushRequest" extends="SimpleHttpRequest" />
- <provides type="class" name="SimpleHttpHeaders" />
- <provides type="class" name="SimpleHttpResponse" extends="StickyError" />
- <provides type="function" name="SimpleUrl::getScheme" />
- <provides type="function" name="SimpleUrl::getUsername" />
- <provides type="function" name="SimpleUrl::getPassword" />
- <provides type="function" name="SimpleUrl::getHost" />
- <provides type="function" name="SimpleUrl::getTld" />
- <provides type="function" name="SimpleUrl::getPort" />
- <provides type="function" name="SimpleUrl::getPath" />
- <provides type="function" name="SimpleUrl::getPage" />
- <provides type="function" name="SimpleUrl::getBasePath" />
- <provides type="function" name="SimpleUrl::getFragment" />
- <provides type="function" name="SimpleUrl::getEncodedRequest" />
- <provides type="function" name="SimpleUrl::encodeRequest" />
- <provides type="function" name="SimpleUrl::getRequest" />
- <provides type="function" name="SimpleUrl::addRequestParameter" />
- <provides type="function" name="SimpleUrl::addRequestParameters" />
- <provides type="function" name="SimpleUrl::makeAbsolute" />
- <provides type="function" name="SimpleUrl::normalisePath" />
- <provides type="function" name="SimpleCookie::setHost" />
- <provides type="function" name="SimpleCookie::getHost" />
- <provides type="function" name="SimpleCookie::isValidHost" />
- <provides type="function" name="SimpleCookie::getName" />
- <provides type="function" name="SimpleCookie::getValue" />
- <provides type="function" name="SimpleCookie::getPath" />
- <provides type="function" name="SimpleCookie::isValidPath" />
- <provides type="function" name="SimpleCookie::getExpiry" />
- <provides type="function" name="SimpleCookie::isExpired" />
- <provides type="function" name="SimpleCookie::agePrematurely" />
- <provides type="function" name="SimpleCookie::isSecure" />
- <provides type="function" name="SimpleHttpRequest::fetch" />
- <provides type="function" name="SimpleHttpRequest::addHeaderLine" />
- <provides type="function" name="SimpleHttpRequest::setCookie" />
- <provides type="function" name="SimpleHttpHeaders::getHttpVersion" />
- <provides type="function" name="SimpleHttpHeaders::getResponseCode" />
- <provides type="function" name="SimpleHttpHeaders::getLocation" />
- <provides type="function" name="SimpleHttpHeaders::isRedirect" />
- <provides type="function" name="SimpleHttpHeaders::getMimeType" />
- <provides type="function" name="SimpleHttpHeaders::getNewCookies" />
- <provides type="function" name="SimpleHttpResponse::getUrl" />
- <provides type="function" name="SimpleHttpResponse::getContent" />
- <provides type="function" name="SimpleHttpResponse::getHeaders" />
- <provides type="function" name="SimpleHttpResponse::getNewCookies" />
- <provides type="class" name="WildcardExpectation" extends="SimpleExpectation" />
- <provides type="class" name="ParametersExpectation" extends="SimpleExpectation" />
- <provides type="class" name="CallMap" />
- <provides type="class" name="SimpleStub" />
- <provides type="class" name="SimpleMock" extends="SimpleStub" />
- <provides type="class" name="Stub" />
- <provides type="class" name="Mock" />
- <provides type="function" name="WildcardExpectation::test" />
- <provides type="function" name="WildcardExpectation::testMessage" />
- <provides type="function" name="ParametersExpectation::test" />
- <provides type="function" name="ParametersExpectation::testMessage" />
- <provides type="function" name="CallMap::addValue" />
- <provides type="function" name="CallMap::addReference" />
- <provides type="function" name="CallMap::findFirstMatch" />
- <provides type="function" name="CallMap::isMatch" />
- <provides type="function" name="SimpleStub::clearHistory" />
- <provides type="function" name="SimpleStub::getCallCount" />
- <provides type="function" name="SimpleStub::setReturnValue" />
- <provides type="function" name="SimpleStub::setReturnValueAt" />
- <provides type="function" name="SimpleStub::setReturnReference" />
- <provides type="function" name="SimpleStub::setReturnReferenceAt" />
- <provides type="function" name="SimpleMock::getTest" />
- <provides type="function" name="SimpleMock::requireReturn" />
- <provides type="function" name="SimpleMock::expectArguments" />
- <provides type="function" name="SimpleMock::expectArgumentsAt" />
- <provides type="function" name="SimpleMock::expectCallCount" />
- <provides type="function" name="SimpleMock::expectMaximumCallCount" />
- <provides type="function" name="SimpleMock::expectMinimumCallCount" />
- <provides type="function" name="SimpleMock::expectNever" />
- <provides type="function" name="SimpleMock::expectOnce" />
- <provides type="function" name="SimpleMock::expectAtLeastOnce" />
- <provides type="function" name="SimpleMock::tally" />
- <provides type="function" name="Stub::generate" />
- <provides type="function" name="Stub::setStubBaseClass" />
- <provides type="function" name="Mock::generate" />
- <provides type="function" name="Mock::generatePartial" />
- <provides type="function" name="Mock::setMockBaseClass" />
- <provides type="class" name="SimpleTestOptions" />
- <provides type="function" name="SimpleTestOptions::getVersion" />
- <provides type="function" name="SimpleTestOptions::ignore" />
- <provides type="function" name="SimpleTestOptions::isIgnored" />
- <provides type="function" name="SimpleTestOptions::setStubBaseClass" />
- <provides type="function" name="SimpleTestOptions::getStubBaseClass" />
- <provides type="function" name="SimpleTestOptions::setMockBaseClass" />
- <provides type="function" name="SimpleTestOptions::getMockBaseClass" />
- <provides type="function" name="SimpleTestOptions::addPartialMockCode" />
- <provides type="function" name="SimpleTestOptions::getPartialMockCode" />
- <provides type="function" name="SimpleTestOptions::getDefaults" />
- <provides type="class" name="SimplePhpPageBuilder" />
- <provides type="class" name="SimplePage" />
- <provides type="function" name="SimplePhpPageBuilder::parse" />
- <provides type="function" name="SimplePhpPageBuilder::startElement" />
- <provides type="function" name="SimplePhpPageBuilder::endElement" />
- <provides type="function" name="SimplePhpPageBuilder::addContent" />
- <provides type="function" name="SimplePage::getRaw" />
- <provides type="function" name="SimplePage::acceptTag" />
- <provides type="function" name="SimplePage::acceptFormStart" />
- <provides type="function" name="SimplePage::acceptFormEnd" />
- <provides type="function" name="SimplePage::getAbsoluteLinks" />
- <provides type="function" name="SimplePage::getRelativeLinks" />
- <provides type="function" name="SimplePage::getUrls" />
- <provides type="function" name="SimplePage::getUrlById" />
- <provides type="function" name="SimplePage::getTitle" />
- <provides type="function" name="SimplePage::getForms" />
- <provides type="function" name="SimplePage::getFormBySubmitLabel" />
- <provides type="function" name="SimplePage::getFormById" />
- <provides type="function" name="SimplePage::getField" />
- <provides type="function" name="SimplePage::setField" />
- <provides type="class" name="ParallelRegex" />
- <provides type="class" name="SimpleStateStack" />
- <provides type="class" name="SimpleLexer" />
- <provides type="class" name="SimpleSaxParser" />
- <provides type="function" name="ParallelRegex::addPattern" />
- <provides type="function" name="ParallelRegex::match" />
- <provides type="function" name="SimpleStateStack::getCurrent" />
- <provides type="function" name="SimpleStateStack::enter" />
- <provides type="function" name="SimpleStateStack::leave" />
- <provides type="function" name="SimpleLexer::addPattern" />
- <provides type="function" name="SimpleLexer::addEntryPattern" />
- <provides type="function" name="SimpleLexer::addExitPattern" />
- <provides type="function" name="SimpleLexer::addSpecialPattern" />
- <provides type="function" name="SimpleLexer::mapHandler" />
- <provides type="function" name="SimpleLexer::parse" />
- <provides type="function" name="SimpleSaxParser::createLexer" />
- <provides type="function" name="SimpleSaxParser::parse" />
- <provides type="function" name="SimpleSaxParser::acceptStartToken" />
- <provides type="function" name="SimpleSaxParser::acceptEndToken" />
- <provides type="function" name="SimpleSaxParser::acceptAttributeToken" />
- <provides type="function" name="SimpleSaxParser::acceptEntityToken" />
- <provides type="function" name="SimpleSaxParser::acceptTextToken" />
- <provides type="function" name="SimpleSaxParser::ignore" />
- <provides type="class" name="SimpleQueryString" />
- <provides type="function" name="SimpleQueryString::add" />
- <provides type="function" name="SimpleQueryString::getValue" />
- <provides type="function" name="SimpleQueryString::asString" />
- <provides type="class" name="RemoteTestCase" extends="RunnableTest" />
- <provides type="function" name="RemoteTestCase::run" />
- <provides type="function" name="RemoteTestCase::getSize" />
- <provides type="class" name="HtmlReporter" extends="SimpleReporter" />
- <provides type="class" name="TextReporter" extends="SimpleReporter" />
- <provides type="class" name="CommandLineReporter" extends="TextReporter" />
- <provides type="function" name="HtmlReporter::paintHeader" />
- <provides type="function" name="HtmlReporter::sendNoCacheHeaders" />
- <provides type="function" name="HtmlReporter::paintFooter" />
- <provides type="function" name="HtmlReporter::paintFail" />
- <provides type="function" name="HtmlReporter::paintException" />
- <provides type="function" name="HtmlReporter::paintFormattedMessage" />
- <provides type="function" name="TextReporter::paintHeader" />
- <provides type="function" name="TextReporter::paintFooter" />
- <provides type="function" name="TextReporter::paintFail" />
- <provides type="function" name="TextReporter::paintException" />
- <provides type="function" name="TextReporter::paintFormattedMessage" />
- <provides type="class" name="SimpleRunner" />
- <provides type="class" name="SimpleRunnerDecorator" />
- <provides type="class" name="SimpleReporter" extends="SimpleRunner" />
- <provides type="class" name="TestDisplay" extends="SimpleReporter" />
- <provides type="function" name="SimpleRunner::makeDry" />
- <provides type="function" name="SimpleRunner::invoke" />
- <provides type="function" name="SimpleRunner::getStatus" />
- <provides type="function" name="SimpleRunner::paintMethodStart" />
- <provides type="function" name="SimpleRunner::paintMethodEnd" />
- <provides type="function" name="SimpleRunner::paintCaseStart" />
- <provides type="function" name="SimpleRunner::paintCaseEnd" />
- <provides type="function" name="SimpleRunner::paintGroupStart" />
- <provides type="function" name="SimpleRunner::paintGroupEnd" />
- <provides type="function" name="SimpleRunner::paintPass" />
- <provides type="function" name="SimpleRunner::paintFail" />
- <provides type="function" name="SimpleRunner::paintError" />
- <provides type="function" name="SimpleRunner::paintException" />
- <provides type="function" name="SimpleRunner::getPassCount" />
- <provides type="function" name="SimpleRunner::getFailCount" />
- <provides type="function" name="SimpleRunner::getExceptionCount" />
- <provides type="function" name="SimpleRunner::paintMessage" />
- <provides type="function" name="SimpleRunner::paintFormattedMessage" />
- <provides type="function" name="SimpleRunner::paintSignal" />
- <provides type="function" name="SimpleRunnerDecorator::invoke" />
- <provides type="function" name="SimpleRunnerDecorator::paintPass" />
- <provides type="function" name="SimpleRunnerDecorator::paintFail" />
- <provides type="function" name="SimpleRunnerDecorator::paintError" />
- <provides type="function" name="SimpleRunnerDecorator::paintException" />
- <provides type="function" name="SimpleRunnerDecorator::paintMessage" />
- <provides type="function" name="SimpleRunnerDecorator::paintFormattedMessage" />
- <provides type="function" name="SimpleRunnerDecorator::paintSignal" />
- <provides type="function" name="SimpleReporter::paintGroupStart" />
- <provides type="function" name="SimpleReporter::paintGroupEnd" />
- <provides type="function" name="SimpleReporter::paintCaseStart" />
- <provides type="function" name="SimpleReporter::paintCaseEnd" />
- <provides type="function" name="SimpleReporter::paintMethodStart" />
- <provides type="function" name="SimpleReporter::paintMethodEnd" />
- <provides type="function" name="SimpleReporter::paintHeader" />
- <provides type="function" name="SimpleReporter::paintFooter" />
- <provides type="function" name="SimpleReporter::getTestList" />
- <provides type="function" name="SimpleReporter::getTestCaseCount" />
- <provides type="function" name="SimpleReporter::getTestCaseProgress" />
- <provides type="function" name="SimpleReporter::inCli" />
- <provides type="class" name="SimpleShell" />
- <provides type="class" name="ShellTestCase" extends="SimpleTestCase" />
- <provides type="function" name="SimpleShell::execute" />
- <provides type="function" name="SimpleShell::getOutput" />
- <provides type="function" name="ShellTestCase::execute" />
- <provides type="function" name="ShellTestCase::assertExitCode" />
- <provides type="function" name="ShellTestCase::assertOutput" />
- <provides type="function" name="ShellTestCase::assertOutputPattern" />
- <provides type="function" name="ShellTestCase::assertNoOutputPattern" />
- <provides type="function" name="ShellTestCase::assertFileExists" />
- <provides type="function" name="ShellTestCase::assertFileNotExists" />
- <provides type="function" name="ShellTestCase::assertFilePattern" />
- <provides type="function" name="ShellTestCase::assertNoFilePattern" />
- <provides type="class" name="RunnableTest" />
- <provides type="class" name="SimpleTestCase" extends="RunnableTest" />
- <provides type="class" name="GroupTest" extends="RunnableTest" />
- <provides type="function" name="RunnableTest::getLabel" />
- <provides type="function" name="RunnableTest::run" />
- <provides type="function" name="RunnableTest::getSize" />
- <provides type="function" name="SimpleTestCase::run" />
- <provides type="function" name="SimpleTestCase::invoke" />
- <provides type="function" name="SimpleTestCase::setUp" />
- <provides type="function" name="SimpleTestCase::tearDown" />
- <provides type="function" name="SimpleTestCase::pass" />
- <provides type="function" name="SimpleTestCase::fail" />
- <provides type="function" name="SimpleTestCase::error" />
- <provides type="function" name="SimpleTestCase::signal" />
- <provides type="function" name="SimpleTestCase::swallowErrors" />
- <provides type="function" name="SimpleTestCase::assertExpectation" />
- <provides type="function" name="SimpleTestCase::assertTrue" />
- <provides type="function" name="SimpleTestCase::assertFalse" />
- <provides type="function" name="SimpleTestCase::dump" />
- <provides type="function" name="SimpleTestCase::sendMessage" />
- <provides type="function" name="GroupTest::addTestCase" />
- <provides type="function" name="GroupTest::addTestFile" />
- <provides type="function" name="GroupTest::run" />
- <provides type="function" name="GroupTest::getSize" />
- <provides type="function" name="GroupTest::ignore" />
- <provides type="class" name="StickyError" />
- <provides type="class" name="SimpleSocket" extends="StickyError" />
- <provides type="function" name="StickyError::isError" />
- <provides type="function" name="StickyError::getError" />
- <provides type="function" name="SimpleSocket::write" />
- <provides type="function" name="SimpleSocket::read" />
- <provides type="function" name="SimpleSocket::isOpen" />
- <provides type="function" name="SimpleSocket::close" />
- <provides type="class" name="SimpleTag" />
- <provides type="class" name="SimpleTitleTag" extends="SimpleTag" />
- <provides type="class" name="SimpleAnchorTag" extends="SimpleTag" />
- <provides type="class" name="SimpleWidget" extends="SimpleTag" />
- <provides type="class" name="SimpleTextTag" extends="SimpleWidget" />
- <provides type="class" name="SimpleSubmitTag" extends="SimpleWidget" />
- <provides type="class" name="SimpleTextAreaTag" extends="SimpleWidget" />
- <provides type="class" name="SimpleCheckboxTag" extends="SimpleWidget" />
- <provides type="class" name="SimpleSelectionTag" extends="SimpleWidget" />
- <provides type="class" name="MultipleSelectionTag" extends="SimpleWidget" />
- <provides type="class" name="SimpleOptionTag" extends="SimpleWidget" />
- <provides type="class" name="SimpleRadioButtonTag" extends="SimpleWidget" />
- <provides type="class" name="SimpleCheckboxGroup" />
- <provides type="class" name="SimpleRadioGroup" />
- <provides type="class" name="SimpleFormTag" extends="SimpleTag" />
- <provides type="class" name="SimpleForm" />
- <provides type="function" name="SimpleTag::expectEndTag" />
- <provides type="function" name="SimpleTag::addContent" />
- <provides type="function" name="SimpleTag::addTag" />
- <provides type="function" name="SimpleTag::getTagName" />
- <provides type="function" name="SimpleTag::getChildElements" />
- <provides type="function" name="SimpleTag::getAttribute" />
- <provides type="function" name="SimpleTag::getContent" />
- <provides type="function" name="SimpleWidget::getName" />
- <provides type="function" name="SimpleWidget::getDefault" />
- <provides type="function" name="SimpleWidget::getValue" />
- <provides type="function" name="SimpleWidget::setValue" />
- <provides type="function" name="SimpleWidget::resetValue" />
- <provides type="function" name="SimpleTextTag::expectEndTag" />
- <provides type="function" name="SimpleTextTag::setValue" />
- <provides type="function" name="SimpleSubmitTag::expectEndTag" />
- <provides type="function" name="SimpleSubmitTag::setValue" />
- <provides type="function" name="SimpleTextAreaTag::getDefault" />
- <provides type="function" name="SimpleTextAreaTag::setValue" />
- <provides type="function" name="SimpleCheckboxTag::expectEndTag" />
- <provides type="function" name="SimpleCheckboxTag::setValue" />
- <provides type="function" name="SimpleCheckboxTag::getDefault" />
- <provides type="function" name="SimpleSelectionTag::addTag" />
- <provides type="function" name="SimpleSelectionTag::addContent" />
- <provides type="function" name="SimpleSelectionTag::getDefault" />
- <provides type="function" name="SimpleSelectionTag::setValue" />
- <provides type="function" name="SimpleSelectionTag::getValue" />
- <provides type="function" name="MultipleSelectionTag::addTag" />
- <provides type="function" name="MultipleSelectionTag::addContent" />
- <provides type="function" name="MultipleSelectionTag::getDefault" />
- <provides type="function" name="MultipleSelectionTag::setValue" />
- <provides type="function" name="MultipleSelectionTag::getValue" />
- <provides type="function" name="SimpleOptionTag::setValue" />
- <provides type="function" name="SimpleOptionTag::getDefault" />
- <provides type="function" name="SimpleRadioButtonTag::expectEndTag" />
- <provides type="function" name="SimpleRadioButtonTag::setValue" />
- <provides type="function" name="SimpleRadioButtonTag::getDefault" />
- <provides type="function" name="SimpleCheckboxGroup::addWidget" />
- <provides type="function" name="SimpleCheckboxGroup::getValue" />
- <provides type="function" name="SimpleCheckboxGroup::getDefault" />
- <provides type="function" name="SimpleCheckboxGroup::setValue" />
- <provides type="function" name="SimpleRadioGroup::addWidget" />
- <provides type="function" name="SimpleRadioGroup::setValue" />
- <provides type="function" name="SimpleRadioGroup::getValue" />
- <provides type="function" name="SimpleRadioGroup::getDefault" />
- <provides type="function" name="SimpleForm::getMethod" />
- <provides type="function" name="SimpleForm::getAction" />
- <provides type="function" name="SimpleForm::getId" />
- <provides type="function" name="SimpleForm::addWidget" />
- <provides type="function" name="SimpleForm::getValue" />
- <provides type="function" name="SimpleForm::setField" />
- <provides type="function" name="SimpleForm::getValues" />
- <provides type="function" name="SimpleForm::getSubmitName" />
- <provides type="function" name="SimpleForm::submitButton" />
- <provides type="function" name="SimpleForm::submitButtonByLabel" />
- <provides type="function" name="SimpleForm::submit" />
- <provides type="class" name="UnitTestCase" extends="SimpleTestCase" />
- <provides type="function" name="UnitTestCase::assertNull" />
- <provides type="function" name="UnitTestCase::assertNotNull" />
- <provides type="function" name="UnitTestCase::assertIsA" />
- <provides type="function" name="UnitTestCase::assertEqual" />
- <provides type="function" name="UnitTestCase::assertNotEqual" />
- <provides type="function" name="UnitTestCase::assertIdentical" />
- <provides type="function" name="UnitTestCase::assertNotIdentical" />
- <provides type="function" name="UnitTestCase::assertReference" />
- <provides type="function" name="UnitTestCase::assertCopy" />
- <provides type="function" name="UnitTestCase::assertWantedPattern" />
- <provides type="function" name="UnitTestCase::assertNoUnwantedPattern" />
- <provides type="function" name="UnitTestCase::assertNoErrors" />
- <provides type="function" name="UnitTestCase::assertError" />
- <provides type="function" name="UnitTestCase::assertErrorPattern" />
- <provides type="function" name="is_a" />
- <provides type="class" name="CookieJar" />
- <provides type="class" name="SimpleUserAgent" />
- <provides type="function" name="CookieJar::restartSession" />
- <provides type="function" name="CookieJar::agePrematurely" />
- <provides type="function" name="CookieJar::setCookie" />
- <provides type="function" name="CookieJar::getValidCookies" />
- <provides type="function" name="SimpleUserAgent::getBaseUrl" />
- <provides type="function" name="SimpleUserAgent::getCurrentUrl" />
- <provides type="function" name="SimpleUserAgent::restartSession" />
- <provides type="function" name="SimpleUserAgent::ageCookies" />
- <provides type="function" name="SimpleUserAgent::setCookie" />
- <provides type="function" name="SimpleUserAgent::getCookieValue" />
- <provides type="function" name="SimpleUserAgent::getBaseCookieValue" />
- <provides type="function" name="SimpleUserAgent::setMaximumRedirects" />
- <provides type="function" name="SimpleUserAgent::fetchResponse" />
- <provides type="function" name="SimpleUserAgent::createAbsoluteUrl" />
- <provides type="class" name="WebTestCase" extends="SimpleTestCase" />
- <provides type="function" name="WebTestCase::showSource" />
- <provides type="function" name="WebTestCase::restartSession" />
- <provides type="function" name="WebTestCase::ageCookies" />
- <provides type="function" name="WebTestCase::getBrowser" />
- <provides type="function" name="WebTestCase::createBrowser" />
- <provides type="function" name="WebTestCase::invoke" />
- <provides type="function" name="WebTestCase::ignoreFrames" />
- <provides type="function" name="WebTestCase::setCookie" />
- <provides type="function" name="WebTestCase::setMaximumRedirects" />
- <provides type="function" name="WebTestCase::get" />
- <provides type="function" name="WebTestCase::post" />
- <provides type="function" name="WebTestCase::clickSubmit" />
- <provides type="function" name="WebTestCase::submitFormById" />
- <provides type="function" name="WebTestCase::clickSubmitByFormId" />
- <provides type="function" name="WebTestCase::submit" />
- <provides type="function" name="WebTestCase::clickLink" />
- <provides type="function" name="WebTestCase::clickLinkById" />
- <provides type="function" name="WebTestCase::clickLinkId" />
- <provides type="function" name="WebTestCase::setField" />
- <provides type="function" name="WebTestCase::assertField" />
- <provides type="function" name="WebTestCase::assertResponse" />
- <provides type="function" name="WebTestCase::assertMime" />
- <provides type="function" name="WebTestCase::assertTitle" />
- <provides type="function" name="WebTestCase::assertWantedPattern" />
- <provides type="function" name="WebTestCase::assertNoUnwantedPattern" />
- <provides type="function" name="WebTestCase::assertCookie" />
- <provides type="function" name="WebTestCase::assertNoCookie" />
- <provides type="class" name="XmlReporter" extends="SimpleReporter" />
- <provides type="class" name="NestingXmlTag" />
- <provides type="class" name="NestingMethodTag" extends="NestingXmlTag" />
- <provides type="class" name="NestingCaseTag" extends="NestingXmlTag" />
- <provides type="class" name="NestingGroupTag" extends="NestingXmlTag" />
- <provides type="class" name="SimpleTestXmlParser" />
- <provides type="function" name="XmlReporter::toParsedXml" />
- <provides type="function" name="XmlReporter::paintGroupStart" />
- <provides type="function" name="XmlReporter::paintGroupEnd" />
- <provides type="function" name="XmlReporter::paintCaseStart" />
- <provides type="function" name="XmlReporter::paintCaseEnd" />
- <provides type="function" name="XmlReporter::paintMethodStart" />
- <provides type="function" name="XmlReporter::paintMethodEnd" />
- <provides type="function" name="XmlReporter::paintPass" />
- <provides type="function" name="XmlReporter::paintFail" />
- <provides type="function" name="XmlReporter::paintException" />
- <provides type="function" name="XmlReporter::paintMessage" />
- <provides type="function" name="XmlReporter::paintFormattedMessage" />
- <provides type="function" name="XmlReporter::paintSignal" />
- <provides type="function" name="XmlReporter::paintHeader" />
- <provides type="function" name="XmlReporter::paintFooter" />
- <provides type="function" name="NestingXmlTag::setName" />
- <provides type="function" name="NestingXmlTag::getName" />
- <provides type="function" name="NestingMethodTag::paintStart" />
- <provides type="function" name="NestingMethodTag::paintEnd" />
- <provides type="function" name="NestingCaseTag::paintStart" />
- <provides type="function" name="NestingCaseTag::paintEnd" />
- <provides type="function" name="NestingGroupTag::paintStart" />
- <provides type="function" name="NestingGroupTag::paintEnd" />
- <provides type="function" name="NestingGroupTag::getSize" />
- <provides type="function" name="SimpleTestXmlParser::parse" />
- <deps>
- <dep type="php" rel="ge" version="4.2.2" optional="no"/>
- </deps>
- <filelist>
- <file role="data" baseinstalldir="simpletest" md5sum="57b8d745384127342f95660d97e1c9c2" name="adapters/CVS/Entries"/>
- <file role="data" baseinstalldir="simpletest" md5sum="2b7250390148247001cadb8a5fbfadd3" name="adapters/CVS/Repository"/>
- <file role="data" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="adapters/CVS/Root"/>
- <file role="data" baseinstalldir="simpletest" md5sum="86b4c77b0ae3098a74d7360383e4795d" name="CVS/Entries"/>
- <file role="data" baseinstalldir="simpletest" md5sum="5d2faa986bab6401d59afeaa1cbcd377" name="CVS/Entries.Log"/>
- <file role="data" baseinstalldir="simpletest" md5sum="d2831889b58a9a5dcb3cf511f2138fef" name="CVS/Repository"/>
- <file role="data" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="CVS/Root"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="957fb972bb56ec2fc4cb9e043f33153b" name="docs/expectation_documentation.html"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="4d76be28d68998d3acdbf0fd84a8c386" name="docs/form_testing_documentation.html"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="e2be277ce587ddd6ad654025ff9d2fde" name="docs/group_test_documentation.html"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="399836ebd45a984043a1014741c8e08a" name="docs/index.html"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="53be8b51c71b7bb913841a9db8ea1e40" name="docs/mock_objects_documentation.html"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="efcaf7aecbf554a218c8afcdccac3c6f" name="docs/overview.html"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="fbaaa44ec4836922a97f78dc25767f46" name="docs/partial_mocks_documentation.html"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="61be91680e210e622613dfb74b37ed46" name="docs/reporter_documentation.html"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="d27524171926f0645db94a19bd30cc3b" name="docs/server_stubs_documentation.html"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="d0077a179125208533f67ab5729b32bf" name="docs/unit_test_documentation.html"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="0754f44ef7d2ef7d6b2eb0da12d17161" name="docs/web_tester_documentation.html"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="b35e8a44b819e8dbe855df29b8edc541" name="docs/CVS/Entries"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="ce3a3e9e3a12eb18c98e17a939876f86" name="docs/CVS/Repository"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="docs/CVS/Root"/>
- <file role="php" baseinstalldir="simpletest" md5sum="05ddb3602ff2c066cce9538ddbffafe6" name="extensions/pear_test_case.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="40c3573c51601fadbfdd7d81b21b819f" name="extensions/phpunit_test_case.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="bd80d999fc551a74a842fac5a494b2e0" name="extensions/CVS/Entries"/>
- <file role="php" baseinstalldir="simpletest" md5sum="4a52c00a1b9d560c164fec847e7b35d4" name="extensions/CVS/Repository"/>
- <file role="php" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="extensions/CVS/Root"/>
- <file role="data" baseinstalldir="simpletest" md5sum="7c12fa92adf36454d7a07b4ae4960fb9" name="packages/makefile"/>
- <file role="php" baseinstalldir="simpletest" md5sum="1e04ba3b5a491877a6b093e5eaf94d20" name="packages/pear_package_create.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="d7f0cabe8bd211f414297a475b72222c" name="packages/simpletest.ini"/>
- <file role="data" baseinstalldir="simpletest" md5sum="2b2af8a130f01dbec1e4f70cbdf0216c" name="packages/CVS/Entries"/>
- <file role="data" baseinstalldir="simpletest" md5sum="175f74a36616e4285e2bb9634960c695" name="packages/CVS/Repository"/>
- <file role="data" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="packages/CVS/Root"/>
- <file role="test" baseinstalldir="simpletest" md5sum="06593d182c80f5403619de116de0722a" name="test/adapter_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="8a6790e31250a52d715eee7164114e85" name="test/all_tests.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="dc711b3d862f6dab7e75a6b17c5ee109" name="test/boundary_tests.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="ed90fbaed340e853f19644338c5f5c00" name="test/browser_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="19954bd4fe40ca96e3288f890ebb29ed" name="test/dumper_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="c98d3707dbb3a17f3eb4718bd44b814e" name="test/errors_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="c186d137ea036fc589cc7f5b1e22bfc6" name="test/expectation_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="4302a25827b8f45e3310589edd1ca791" name="test/frames_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="f31a48f91f4ec8ff9adecdaae971066c" name="test/http_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="e9ec6be76102634a378bc49b41bb7f65" name="test/live_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="90ce55650bab1ab0e6a3d6372647af1b" name="test/options_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="14e6276ae1641200a0e5c6ba484b2a17" name="test/page_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="a6b6ef1926cd759885c060587fc9a49e" name="test/php_parser_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="5c40c7780cf01e236e4935fed6c52fd6" name="test/query_string_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="c1cc1d683670d73883d7fafad353090d" name="test/real_sites_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="32eda7f5b6e6e5a4aadda413c9ebeb06" name="test/remote_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="cbb8f7de9111014eadc6b90f63677c42" name="test/shell_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="ab77dee4cae2758e94b7a11c31e8b179" name="test/shell_tester_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="6001788f743039c650ac147aa812ac81" name="test/simple_mock_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="a5bb54f1a280306ab5e2c03680f18ae2" name="test/socket_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="a8ad0c8f05eb5f50fc1de7546c64dea1" name="test/tag_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="a06ad15849d73b208ade0f9ba96f611b" name="test/unit_tests.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="9373c8c566cda8ed2149a5fe209131d7" name="test/user_agent_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="5acc0fb62be7f97c1078f0f64f2b20f4" name="test/visual_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="812ebe73cfc7005cec7b1c12c571c720" name="test/xml_test.php"/>
- <file role="test" baseinstalldir="simpletest" md5sum="6ec9b0427e8e84db459a5b93fa252db0" name="test/CVS/Entries"/>
- <file role="test" baseinstalldir="simpletest" md5sum="2416735a8ab2008298c39da1a69782f4" name="test/CVS/Entries.Log"/>
- <file role="test" baseinstalldir="simpletest" md5sum="9b1f51caa45c2c2434106a4dbdfebf96" name="test/CVS/Repository"/>
- <file role="test" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="test/CVS/Root"/>
- <file role="test" baseinstalldir="simpletest" md5sum="57b8d745384127342f95660d97e1c9c2" name="test/support/CVS/Entries"/>
- <file role="test" baseinstalldir="simpletest" md5sum="140879b54e3cbc1789e17bb52b09b627" name="test/support/CVS/Repository"/>
- <file role="test" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="test/support/CVS/Root"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="57b8d745384127342f95660d97e1c9c2" name="tutorials/CVS/Entries"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="c2e644f35e324518c9cb5fd061423447" name="tutorials/CVS/Entries.Log"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="1b719edf330dbc15757e28fac92c769b" name="tutorials/CVS/Repository"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="tutorials/CVS/Root"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="0d7688680c6855dc56f3f9848cc046ea" name="tutorials/SimpleTest/GroupTests.pkg"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="c6cac7a1cb45cd95be7d60b85f8a00be" name="tutorials/SimpleTest/MockObjects.pkg"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="3089850251a21138c8e47a7a56a03033" name="tutorials/SimpleTest/PartialMock.pkg"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="9c94a95d5e2bff9a617c5626c01a5445" name="tutorials/SimpleTest/Reporting.pkg"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="12886a28d5b8e66551f52fe17d118786" name="tutorials/SimpleTest/ServerStubs.pkg"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="ac53a7b4f9d53a69778e91b5264239a3" name="tutorials/SimpleTest/SimpleTest.pkg"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="12c2b768cbd17cca4dfabf019849951d" name="tutorials/SimpleTest/SimpleTest.pkg.ini"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="7fcd8a97c3fede0ee0e1fcc7d871d357" name="tutorials/SimpleTest/UnitTestCase.pkg"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="2320cc95aad1a48daa8dce32faf26ce4" name="tutorials/SimpleTest/CVS/Entries"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="1ecb8a2d4b8fe00de1d51a6eed04ee44" name="tutorials/SimpleTest/CVS/Repository"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="tutorials/SimpleTest/CVS/Root"/>
- <file role="php" baseinstalldir="simpletest" md5sum="413d313259d41236f06e3b1d4ca2cf2f" name="ui/webunit_reporter.php"/>
- <file role="data" baseinstalldir="simpletest" md5sum="b764971cdf3f5dd6cc89fc923a9d8321" name="ui/css/webunit.css"/>
- <file role="data" baseinstalldir="simpletest" md5sum="1c842b1ba57c9ef0afc90422afe15cbc" name="ui/css/CVS/Entries"/>
- <file role="data" baseinstalldir="simpletest" md5sum="28a08b3a7947fbb338846884462a3b7e" name="ui/css/CVS/Repository"/>
- <file role="data" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="ui/css/CVS/Root"/>
- <file role="php" baseinstalldir="simpletest" md5sum="fb79bccb89805eeab9646f4215c45420" name="ui/CVS/Entries"/>
- <file role="php" baseinstalldir="simpletest" md5sum="1ad8ede2f2ccc8a2756a5fcde24fb231" name="ui/CVS/Entries.Log"/>
- <file role="php" baseinstalldir="simpletest" md5sum="be44f1632babbd6fa47f10e5465d031f" name="ui/CVS/Repository"/>
- <file role="php" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="ui/CVS/Root"/>
- <file role="data" baseinstalldir="simpletest" md5sum="c0222c64f54202b63eca0371d51d11e4" name="ui/img/wait.gif"/>
- <file role="data" baseinstalldir="simpletest" md5sum="2b8b19610a6688247dd74246ad2b3c24" name="ui/img/CVS/Entries"/>
- <file role="data" baseinstalldir="simpletest" md5sum="f30ffb1ed758705102d3a1039be41138" name="ui/img/CVS/Repository"/>
- <file role="data" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="ui/img/CVS/Root"/>
- <file role="data" baseinstalldir="simpletest" md5sum="cfa4018060c6e6387b0ed81a0d02834a" name="ui/js/webunit.js"/>
- <file role="data" baseinstalldir="simpletest" md5sum="aae6394c3f4dbbe2879fdf5207c3ee74" name="ui/js/x.js"/>
- <file role="data" baseinstalldir="simpletest" md5sum="baa018246deb7521042e2461add7d842" name="ui/js/CVS/Entries"/>
- <file role="data" baseinstalldir="simpletest" md5sum="f13bba517184993178509c26238f58dd" name="ui/js/CVS/Entries.Log"/>
- <file role="data" baseinstalldir="simpletest" md5sum="8844973027da7d1ae1be2f140bd88b86" name="ui/js/CVS/Repository"/>
- <file role="data" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="ui/js/CVS/Root"/>
- <file role="test" baseinstalldir="simpletest" md5sum="63cca591ca1be6ece6c89ceb01150701" name="ui/js/tests/TestOfWebunit.js.html"/>
- <file role="test" baseinstalldir="simpletest" md5sum="fd9059cba0c3f35e9ff804b7d8ef0d42" name="ui/js/tests/CVS/Entries"/>
- <file role="test" baseinstalldir="simpletest" md5sum="08f64becaa00d88ce8ffe17965d15802" name="ui/js/tests/CVS/Repository"/>
- <file role="test" baseinstalldir="simpletest" md5sum="34dd7a9cf081c951cc23fd2bd020b9ec" name="ui/js/tests/CVS/Root"/>
- <file role="php" baseinstalldir="simpletest" md5sum="43c7b30ca765fa74968cb08b85ad6495" name="browser.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="b5e0e3a556571ed5755d2978c46cfa30" name="dumper.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="a678e879ae727ab16fa3938a17f58158" name="errors.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="7990faeaa9efcedeba9a1da255443420" name="expectation.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="785a9fc6c96a6e3826d8ff8a4758479a" name="frames.php"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="db5799cb9acbcd1bf21592a3f2751d12" name="HELP_MY_TESTS_DONT_WORK_ANYMORE"/>
- <file role="php" baseinstalldir="simpletest" md5sum="a2c2855ac6bc28a101f97a75b3b1997c" name="http.php"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="afa2e568f864be24b1c5c3aaac6ab34c" name="LICENSE"/>
- <file role="php" baseinstalldir="simpletest" md5sum="948aba5c364abe2504b35551bb7d5e9a" name="mock_objects.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="881acb74595b13b77ef5c7faebf8fcfc" name="options.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="ef7759089217d3192568d7ceb86774be" name="page.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="43fdcae4285d29d1f93930182c18a5fe" name="php_parser.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="10b1c6bb26cd88ac491c95e8bb1fc43d" name="query_string.php"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="7109ef978192e5bc8a4d9237cc8aaea3" name="README"/>
- <file role="php" baseinstalldir="simpletest" md5sum="cca19e26be64c76eb34655c3f19b55ca" name="remote.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="0112be72388bcda18c6cd43d71953546" name="reporter.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="f3c0df81cbad05c3d52806a85c4365e2" name="runner.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="6a29d666f9ba8529963714ce66193c2f" name="shell_tester.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="34a7ca4445a47a17ab9e99874689d5e4" name="simple_test.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="5cdcd369034da2795c78bd2e27d92bbc" name="socket.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="b681c663cadcd5a6ae27610797370d45" name="tag.php"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="5529758df672c3f9d7c06ebc4f865a8a" name="TODO"/>
- <file role="php" baseinstalldir="simpletest" md5sum="5deae25e8128fe76a9f1d7f50f84f6f4" name="unit_tester.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="6bb9d93d64ac8c24efdd1308732c067a" name="user_agent.php"/>
- <file role="doc" baseinstalldir="simpletest" md5sum="0f6f4620df6da2939deddbe406e556a3" name="VERSION"/>
- <file role="php" baseinstalldir="simpletest" md5sum="26470a8b7154de3b5aba052c29a41da3" name="web_tester.php"/>
- <file role="php" baseinstalldir="simpletest" md5sum="33f4aec8b1f3426b0593b556efed7d15" name="xml.php"/>
- </filelist>
- </release>
- <changelog>
- <release>
- <version>0.9.4</version>
- <date>2004-02-20</date>
- <license>The Open Group Test Suite License</license>
- <state>beta</state>
- <notes>This is the final version of the PHP unit and web testing tool before the
-stable release 1.0 version. It features many improvements to the HTML form
-parsing and exposure of the underlying web browser. There are also numerous
-minor improvements and bug fixes.</notes>
- </release>
- </changelog>
-</package>
Deleted: simpletest/trunk/packages/pear_package_create.php
===================================================================
--- simpletest/trunk/packages/pear_package_create.php 2011-04-30 00:35:07 UTC (rev 2016)
+++ simpletest/trunk/packages/pear_package_create.php 2011-04-30 00:42:45 UTC (rev 2017)
@@ -1,170 +0,0 @@
-#!/usr/local/bin/php -q
-<?php
-/**
-* Generates a package.xml file for simpletest
-*/
-/*---------------------------------------------------------------------------*/
-// Modify this - path the the source code - no trailing slash
-$packagedir = '/home/username/simpletest';
-/*---------------------------------------------------------------------------*/
-// Modify this - the version / state of the package
-$version = '0.9.4';
-$state = 'beta'; // alpha / beta / stable
-/*---------------------------------------------------------------------------*/
-// Modify the release notes. Try to keep under 80 chars width
-$releaseNotes = <<<EOD
-This is the final version of the PHP unit and web testing tool before the
-stable release 1.0 version. It features many improvements to the HTML form
-parsing and exposure of the underlying web browser. There are also numerous
-minor improvements and bug fixes.
-EOD;
-/*---------------------------------------------------------------------------*/
-// Modify short description. Try to keep under 80 chars width
-$shortDesc = <<<EOD
-Unit testing, mock objects and web testing framework for PHP.
-EOD;
-/*---------------------------------------------------------------------------*/
-// Modify long description. Try to keep under 80 chars width
-$longDesc = <<<EOD
-The heart of SimpleTest is a testing framework built around test case classes.
-These are written as extensions of base test case classes, each extended with
-methods that actually contain test code. Top level test scripts then invoke
-the run() methods on every one of these test cases in order. Each test
-method is written to invoke various assertions that the developer expects to
-be true such as assertEqual(). If the expectation is correct, then a
-successful result is dispatched to the observing test reporter, but any
-failure triggers an alert and a description of the mismatch.
-
-These tools are designed for the developer. Tests are written in the PHP
-language itself more or less as the application itself is built. The advantage
-of using PHP itself as the testing language is that there are no new languages
-to learn, testing can start straight away, and the developer can test any part
-of the code. Basically, all parts that can be accessed by the application code
-can also be accessed by the test code if they are in the same language.
-EOD;
-/*---------------------------------------------------------------------------*/
-// Modify the maintainers are required
-$maintainers = array (
- array ('handle'=>'lastcraft','role'=>'lead','name'=>'Marcus Baker', 'email'=>'ma...@la...'),
- array ('handle'=>'jsweat','role'=>'helper'...
[truncated message content] |
|
From: <ma...@us...> - 2011-04-30 00:35:14
|
Revision: 2016
http://simpletest.svn.sourceforge.net/simpletest/?rev=2016&view=rev
Author: maetl_
Date: 2011-04-30 00:35:07 +0000 (Sat, 30 Apr 2011)
Log Message:
-----------
adding PEAR2 package.xml for alpha deployment to simpletest.pearfarm.org channel
Added Paths:
-----------
simpletest/trunk/package.xml
Added: simpletest/trunk/package.xml
===================================================================
--- simpletest/trunk/package.xml (rev 0)
+++ simpletest/trunk/package.xml 2011-04-30 00:35:07 UTC (rev 2016)
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<package packagerversion="1.8.0" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0
+ http://pear.php.net/dtd/tasks-1.0.xsd
+ http://pear.php.net/dtd/package-2.0
+ http://pear.php.net/dtd/package-2.0.xsd">
+ <name>simpletest</name>
+ <channel>simpletest.pearfarm.org</channel>
+ <summary>Unit testing, mock objects and web testing framework for PHP.</summary>
+ <description>Unit testing, mock objects and web testing framework for PHP built around test cases. If you know JUnit/JMock or some of the PHPUnit clones this will need no explanation. Includes a native web browser for testing web sites directly (no JavaScript).</description>
+ <lead>
+ <name>Marcus Baker</name>
+ <user>lastcraft</user>
+ <email>ma...@la...</email>
+ <active>no</active>
+ </lead>
+ <developer>
+ <name>Perrick Penet</name>
+ <user>pp11</user>
+ <email>pp...@us...</email>
+ <active>yes</active>
+ </developer>
+ <date>2011-04-28</date>
+ <time>01:46:26</time>
+ <version>
+ <release>1.1</release>
+ <api>1.1</api>
+ </version>
+ <stability>
+ <release>alpha</release>
+ <api>alpha</api>
+ </stability>
+ <license uri="http://www.gnu.org/copyleft/lesser.html">LGPL</license>
+ <notes>This is a preliminary PEAR package of the latest SimpleTest code before
+ the next release is staged.
+ </notes>
+ <contents>
+ <dir name="/">
+ <file name="README" role="doc" />
+ <file name="LICENSE" role="doc" />
+ <file name="HELP_MY_TESTS_DONT_WORK_ANYMORE" role="doc" />
+ <file name="arguments.php" role="php" baseinstalldir="simpletest" />
+ <file name="authentication.php" role="php" baseinstalldir="simpletest" />
+ <file name="autorun.php" role="php" baseinstalldir="simpletest" />
+ <file name="browser.php" role="php" baseinstalldir="simpletest" />
+ <file name="collector.php" role="php" baseinstalldir="simpletest" />
+ <file name="compatibility.php" role="php" baseinstalldir="simpletest" />
+ <file name="cookies.php" role="php" baseinstalldir="simpletest" />
+ <file name="default_reporter.php" role="php" baseinstalldir="simpletest" />
+ <file name="detached.php" role="php" baseinstalldir="simpletest" />
+ <file name="dumper.php" role="php" baseinstalldir="simpletest" />
+ <file name="eclipse.php" role="php" baseinstalldir="simpletest" />
+ <file name="encoding.php" role="php" baseinstalldir="simpletest" />
+ <file name="errors.php" role="php" baseinstalldir="simpletest" />
+ <file name="exceptions.php" role="php" baseinstalldir="simpletest" />
+ <file name="expectation.php" role="php" baseinstalldir="simpletest" />
+ <file name="form.php" role="php" baseinstalldir="simpletest" />
+ <file name="frames.php" role="php" baseinstalldir="simpletest" />
+ <file name="http.php" role="php" baseinstalldir="simpletest" />
+ <file name="invoker.php" role="php" baseinstalldir="simpletest" />
+ <file name="mock_objects.php" role="php" baseinstalldir="simpletest" />
+ <file name="page.php" role="php" baseinstalldir="simpletest" />
+ <file name="php_parser.php" role="php" baseinstalldir="simpletest" />
+ <file name="recorder.php" role="php" baseinstalldir="simpletest" />
+ <file name="reflection_php4.php" role="php" baseinstalldir="simpletest" />
+ <file name="reflection_php5.php" role="php" baseinstalldir="simpletest" />
+ <file name="remote.php" role="php" baseinstalldir="simpletest" />
+ <file name="reporter.php" role="php" baseinstalldir="simpletest" />
+ <file name="scorer.php" role="php" baseinstalldir="simpletest" />
+ <file name="selector.php" role="php" baseinstalldir="simpletest" />
+ <file name="shell_tester.php" role="php" baseinstalldir="simpletest" />
+ <file name="simpletest.php" role="php" baseinstalldir="simpletest" />
+ <file name="socket.php" role="php" baseinstalldir="simpletest" />
+ <file name="tag.php" role="php" baseinstalldir="simpletest" />
+ <file name="test_case.php" role="php" baseinstalldir="simpletest" />
+ <file name="tidy_parser.php" role="php" baseinstalldir="simpletest" />
+ <file name="unit_tester.php" role="php" baseinstalldir="simpletest" />
+ <file name="url.php" role="php" baseinstalldir="simpletest" />
+ <file name="user_agent.php" role="php" baseinstalldir="simpletest" />
+ <file name="web_tester.php" role="php" baseinstalldir="simpletest" />
+ <file name="xml.php" role="php" baseinstalldir="simpletest" />
+ </dir>
+ </contents>
+ <dependencies>
+ <required>
+ <php>
+ <min>5.0.5</min>
+ </php>
+ <pearinstaller>
+ <min>1.4.0</min>
+ </pearinstaller>
+ </required>
+ </dependencies>
+ <phprelease />
+</package>
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pp...@us...> - 2011-04-29 16:28:32
|
Revision: 2015
http://simpletest.svn.sourceforge.net/simpletest/?rev=2015&view=rev
Author: pp11
Date: 2011-04-29 16:28:25 +0000 (Fri, 29 Apr 2011)
Log Message:
-----------
Bringing back parts of the french documentation in synch
Modified Paths:
--------------
simpletest/trunk/docs/source/en/browser_documentation.xml
simpletest/trunk/docs/source/en/download_website.xml
simpletest/trunk/docs/source/en/extension_eclipse.xml
simpletest/trunk/docs/source/fr/authentication_documentation.xml
simpletest/trunk/docs/source/fr/boundary_classes_tutorial.xml
simpletest/trunk/docs/source/fr/browser_documentation.xml
simpletest/trunk/docs/source/fr/display_subclass_tutorial.xml
simpletest/trunk/docs/source/fr/download_website.xml
simpletest/trunk/docs/source/fr/expectation_documentation.xml
simpletest/trunk/docs/source/fr/extension_eclipse.xml
Modified: simpletest/trunk/docs/source/en/browser_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/en/browser_documentation.xml 2011-04-29 16:26:02 UTC (rev 2014)
+++ simpletest/trunk/docs/source/en/browser_documentation.xml 2011-04-29 16:28:25 UTC (rev 2015)
@@ -100,8 +100,8 @@
<tr><td><code>isClickable($label)</code></td><td>Test to see if a click target exists by label or name</td></tr>
<tr><td><code>isSubmit($label)</code></td><td>Test for the existence of a button with that label or name</td></tr>
<tr><td><code>isImage($label)</code></td><td>Test for the existence of an image button with that label or name</td></tr>
- <tr><td><code>getLink($label)</code></td><td>Finds a URL from it's label</td></tr>
- <tr><td><code>getLinkById($label)</code></td><td>Finds a URL from it's ID attribute</td></tr>
+ <tr><td><code>getLink($label)</code></td><td>Finds a URL from its label</td></tr>
+ <tr><td><code>getLinkById($label)</code></td><td>Finds a URL from its ID attribute</td></tr>
<tr><td><code>getUrls()</code></td><td>Lists available links in the current page</td></tr>
</tbody></table>
This will be expanded in later versions of SimpleTest.
Modified: simpletest/trunk/docs/source/en/download_website.xml
===================================================================
--- simpletest/trunk/docs/source/en/download_website.xml 2011-04-29 16:26:02 UTC (rev 2014)
+++ simpletest/trunk/docs/source/en/download_website.xml 2011-04-29 16:28:25 UTC (rev 2015)
@@ -6,8 +6,8 @@
<section name="current-release" title="Current release">
<p>
The current release is :
- <a href="http://sourceforge.net/projects/simpletest/files/simpletest/simpletest_1.1/simpletest_1.1alpha.tar.gz/download">
- SimpleTest v1.1alpha</a>.
+ <a href="http://sourceforge.net/projects/simpletest/files/simpletest/simpletest_1.1/simpletest_1.1alpha2.tar.gz/download">
+ SimpleTest v1.1alpha2</a>.
</p>
<p>
You can download this version from
Modified: simpletest/trunk/docs/source/en/extension_eclipse.xml
===================================================================
--- simpletest/trunk/docs/source/en/extension_eclipse.xml 2011-04-29 16:26:02 UTC (rev 2014)
+++ simpletest/trunk/docs/source/en/extension_eclipse.xml 2011-04-29 16:28:25 UTC (rev 2015)
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!-- $Id$ -->
-<page title="Simpletest Eclipse Plugin" here="Eclipse">
- <long_title>Simpletest Eclipse Plugin Documentation</long_title>
+<page title="SimpleTest Eclipse Plugin" here="Eclipse">
+ <long_title>SimpleTest Eclipse Plugin Documentation</long_title>
<content>
<section name="compat" title="Compatibility">
<ul>
@@ -30,13 +30,13 @@
Do not worry about specifying any other parameters, the plugin will handle setting the necessary parameters, as needed.
</li>
<li>
- <b>Simpletest</b><br/>
- The plugin has been designed to work with a specific version of Simpletest
- and in fact includes the associated version of Simpletest in the plugin for compatibility.
+ <b>SimpleTest</b><br/>
+ The plugin has been designed to work with a specific version of SimpleTest
+ and in fact includes the associated version of SimpleTest in the plugin for compatibility.
A plugin with a version number of 1.0.0_0.0.4 would indicate that the plugin was compatible
- with Simpletest version 1.0.0 and was version 0.0.4 of the plugin.
- Some slight modifications to the Simpletest code are required to make the plugin
- work with Simpletest; these modifications may or may not be in the released version of Simpletest.
+ with SimpleTest version 1.0.0 and was version 0.0.4 of the plugin.
+ Some slight modifications to the SimpleTest code are required to make the plugin
+ work with SimpleTest; these modifications may or may not be in the released version of SimpleTest.
</li>
<li>
<b>PHPUnit2</b><br/>
@@ -50,7 +50,7 @@
<section name="install" title="Installation">
<ol>
<li>Download and Install Eclipse (<a href="http://www.eclipse.org">www.eclipse.org</a>) – if you are not sure what to download, download the Eclipse 3.1.0 SDK.</li>
- <li>Download the latest Simpletest Eclipse plug-in zip file (<a href="http://sourceforge.net/project/showfiles.php?group_id=76550&package_id=159054">Simpletest Sourceforge</a>)</li>
+ <li>Download the latest SimpleTest Eclipse plug-in zip file (<a href="http://sourceforge.net/project/showfiles.php?group_id=76550&package_id=159054">SimpleTest Sourceforge</a>)</li>
<li>Extract the zip file to a temporary location {this will be referred to later in this documentation as $unzip}</li>
<li>Start Eclipse</li>
<li>Open the Install Wizard by clicking "Help" > "Software Updates" > "Find and Install" from the menu bar.</li>
@@ -60,7 +60,7 @@
<li>Click the "OK" button.</li>
<li>In the "Edit Local Site" window, Click the "OK" button</li>
<li>Click the "Finish" button</li>
- <li>In the "Search Results" window, drill down and select "Simpletest plug-in 0.0.x"</li>
+ <li>In the "Search Results" window, drill down and select "SimpleTest plug-in 0.0.x"</li>
<li>Click the "Next" button.</li>
<li>Read the license and accept the license by clicking the "I accept the terms in the license agreement" radio button and then clicking the "Next" button</li>
<li>In the "Installation" window you can choose to change the location -- most users should just click the "Finish" button</li>
@@ -68,7 +68,7 @@
<li>When prompted, restart Eclipse</li>
<li>
<p>After starting Eclipse for the first time after installation
- you will need to perform a quick configuration of the Simpletest Plug-in.
+ you will need to perform a quick configuration of the SimpleTest Plug-in.
To perform this configuration:
</p>
<ol type="a">
@@ -76,7 +76,7 @@
Select "Window" > "Preferences" from the menu bar
</li>
<li>
- Select "Simpletest" from the categories on the left hand side of the popup box.
+ Select "SimpleTest" from the categories on the left hand side of the popup box.
</li>
<li>
Enter or Browse for the location of a PHP executable to use.
@@ -105,7 +105,7 @@
portion).
<ol>
<li>Select "Help" > "Software Updates" > "Manage Configuration" from the menu</li>
- <li>Drill down to find the Simpletest plugin and select it</li>
+ <li>Drill down to find the SimpleTest plugin and select it</li>
<li>In the right hand pane click the link for "Scan for Updates"</li>
<li>IF no updates are found, navigate to Window > Preferences > Install/Update > Valid Updates in the Eclipse preferences and select 'Compatible', not 'equivalent'. Then repeat the steps above.</li>
<li>Select the feature versions that you wish to upgrade, and click "Next".</li>
@@ -120,13 +120,13 @@
</p>
<ol>
<li>Select "Help" > "Software Updates" > "Manage Configuration"</li>
- <li>Drill down to find the Simpletest plugin</li>
- <li>Right-click on the Simpletest plugin and select the option "Disable"</li>
+ <li>Drill down to find the SimpleTest plugin</li>
+ <li>Right-click on the SimpleTest plugin and select the option "Disable"</li>
<li>when prompted, restart Eclipse</li>
<li>After Eclipse has restarted, select "Help" > "Software Updates" > "Manage Configuration" from the menu bar</li>
<li>Select the option from the toolbar "Show Disabled Features"</li>
- <li>Drill down to find the Simpletest plugin</li>
- <li>Right-click on the Simpletest plugin and select the option "Uninstall"</li>
+ <li>Drill down to find the SimpleTest plugin</li>
+ <li>Right-click on the SimpleTest plugin and select the option "Uninstall"</li>
<li>When prompted, restart Eclipse</li>
</ol>
</section>
@@ -165,8 +165,8 @@
]]></php>
</li>
<li>Select "File" > "Save" from the menu.</li>
- <li>Right click on the test1.php entry and select "Run" > "Run Simpletest".</li>
- <li>The "Result View" should populate with information about the test run and the Simpletest console should fill with some information as well.</li>
+ <li>Right click on the test1.php entry and select "Run" > "Run SimpleTest".</li>
+ <li>The "Result View" should populate with information about the test run and the SimpleTest console should fill with some information as well.</li>
</ol>
</li>
<li>Single Test class multiple tests
@@ -195,8 +195,8 @@
]]></php>
</li>
<li>Select "File" > "save" from the menu bar.</li>
- <li>Right click on the test2.php entry and select "Run" > "Run Simpletest".</li>
- <li>The Result View should populate with information about the test run and the Simpletest console should fill with some information as well</li>
+ <li>Right click on the test2.php entry and select "Run" > "Run SimpleTest".</li>
+ <li>The Result View should populate with information about the test run and the SimpleTest console should fill with some information as well</li>
</ol>
</li>
<li>Group Tests (test multiple files at once)
@@ -218,8 +218,8 @@
]]></php>
</li>
<li>Select "File" > "save" from the menu</li>
- <li>Right click on the grouptest.php entry and select "Run" > "Run Simpletest"</li>
- <li>The Result View should populate with information about the test run and the Simpletest console should fill with some information as well</li>
+ <li>Right click on the grouptest.php entry and select "Run" > "Run SimpleTest"</li>
+ <li>The Result View should populate with information about the test run and the SimpleTest console should fill with some information as well</li>
</ol>
</li>
</ol>
Modified: simpletest/trunk/docs/source/fr/authentication_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/fr/authentication_documentation.xml 2011-04-29 16:26:02 UTC (rev 2014)
+++ simpletest/trunk/docs/source/fr/authentication_documentation.xml 2011-04-29 16:28:25 UTC (rev 2015)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $Id$ -->
<page title="Documentation sur l'authentification" here="L'authentification">
- <synchronisation lang="en" version="1684" date="19/03/2008" maintainer="pp11" />
+ <synchronisation lang="en" version="1954" date="29/04/2011" maintainer="pp11" />
<long_title>Documentation Simple Test : tester l'authentification</long_title>
<content>
<introduction>
@@ -55,6 +55,22 @@
tout d\xE9pend de la masse de d\xE9tails que vous souhaitez voir.
</p>
<p>
+ Un des axes qui traverse SimpleTest est la possibilit\xE9 d'utiliser
+ des objets <code>SimpleExpectation</code> \xE0 chaque fois qu'une
+ v\xE9rification simple suffit.
+ Si vous souhaitez v\xE9rifiez simplement le contenu du realm - l'identification
+ du domaine - dans notre exemple, il suffit de faire...
+<php><![CDATA[
+class AuthenticationTest extends WebTestCase {
+ function test401Header() {
+ $this->get('http://www.lastcraft.com/protected/');
+ $this->assertRealm(<strong>new PatternExpectation('/simpletest/i')</strong>);
+ }
+}
+]]></php>
+ Ce type de test, v\xE9rifier les r\xE9ponses HTTP, n'est cependant pas commun.
+ </p>
+ <p>
La plupart du temps, nous ne souhaitons pas tester
l'authentification en elle-m\xEAme, mais plut\xF4t
les pages prot\xE9g\xE9es par cette authentification.
@@ -96,6 +112,10 @@
l'information d'authentification sera pr\xE9serv\xE9e.
</p>
<p>
+ Normalement, vous utilisez l'appel <code>authenticate()</code>. SimpleTest
+ utilisera alors vos informations de connexion \xE0 chaque requ\xEAte.
+ </p>
+ <p>
Pour l'instant, seule l'authentification de base est impl\xE9ment\xE9e
et elle n'est r\xE9ellement fiable qu'en tandem avec une connexion HTTPS.
C'est g\xE9n\xE9ralement suffisant pour prot\xE9ger
@@ -149,9 +169,25 @@
]]></php>
Nous nous contentons ici de v\xE9rifier que le cookie a bien \xE9t\xE9 d\xE9fini.
Etant donn\xE9 que sa valeur est plut\xF4t \xE9nigmatique,
- elle ne vaut pas la peine d'\xEAtre test\xE9e.
+ elle ne vaudrait pas la peine d'\xEAtre test\xE9e avec...
+<php><![CDATA[
+class LogInTest extends WebTestCase {
+ function testSessionCookieIsCorrectPattern() {
+ $this->get('http://www.my-site.com/login.php');
+ $this->assertCookie('SID', <strong>new PatternExpectation('/[a-f0-9]{32}/i')</strong>);
+ }
+}
+]]></php>
+ Si vous utilisez PHP pour g\xE9rer vos sessions alors
+ ce test est encore plus inutile, \xE9tant donn\xE9 qu'il ne fait
+ que tester PHP lui-m\xEAme.
</p>
<p>
+ Le test le plus simple pour v\xE9rifier que la connexion a bien eu lieu
+ reste d'inspecter visuellement la page suivante :
+ un simple appel \xE0 <code>WebTestCase::assertText()</code> et le tour est jou\xE9.
+ </p>
+ <p>
Le reste du test est le m\xEAme que dans n'importe quel autre formulaire,
mais nous pourrions souhaiter nous assurer
que le cookie n'a pas \xE9t\xE9 modifi\xE9 depuis la phase de connexion.
Modified: simpletest/trunk/docs/source/fr/boundary_classes_tutorial.xml
===================================================================
--- simpletest/trunk/docs/source/fr/boundary_classes_tutorial.xml 2011-04-29 16:26:02 UTC (rev 2014)
+++ simpletest/trunk/docs/source/fr/boundary_classes_tutorial.xml 2011-04-29 16:28:25 UTC (rev 2015)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $Id$ -->
<page title="Les fronti\xE8res de l'application" here="Les fronti\xE8res de l'application">
- <synchronisation lang="en" version="1684" date="19/03/2008" maintainer="pp11" />
+ <synchronisation lang="en" version="1879" date="29/04/2011" maintainer="pp11" />
<long_title>
Tutorial de tests unitaires PHP - Organiser les tests unitaires et les sc\xE9narios de test de classe fronti\xE8re
</long_title>
@@ -76,59 +76,61 @@
nous appelons un <code>Writer</code>. Retour aux tests...
<php><![CDATA[
<?php
- require_once('../classes/log.php');
+ require_once('simpletest/autorun.php');
+ require_once('../classes/log.php');
require_once('../classes/clock.php');<strong>
require_once('../classes/writer.php');</strong>
Mock::generate('Clock');
class TestOfLogging extends UnitTestCase {
- function TestOfLogging() {
- $this->UnitTestCase('Log class test');
- }
function setUp() {
@unlink('../temp/test.log');
}
function tearDown() {
@unlink('../temp/test.log');
}
- function getFileLine($filename, $index) {
- $messages = file($filename);
- return $messages[$index];
- }
+
function testCreatingNewFile() {<strong>
$log = new Log(new FileWriter('../temp/test.log'));</strong>
$this->assertFalse(file_exists('../temp/test.log'), 'Created before message');
$log->message('Should write this to a file');
$this->assertTrue(file_exists('../temp/test.log'), 'File created');
}
+
function testAppendingToFile() {<strong>
$log = new Log(new FileWriter('../temp/test.log'));</strong>
$log->message('Test line 1');
- $this->assertWantedPattern(
+ $this->assertPattern(
'/Test line 1/',
$this->getFileLine('../temp/test.log', 0));
$log->message('Test line 2');
- $this->assertWantedPattern(
+ $this->assertPattern(
'/Test line 2/',
$this->getFileLine('../temp/test.log', 1));
}
+
function testTimestamps() {
$clock = &new MockClock($this);
- $clock->setReturnValue('now', 'Timestamp');<strong>
+ $clock->returns('now', 'Timestamp');<strong>
$log = new Log(new FileWriter('../temp/test.log'));</strong>
$log->message('Test line', &$clock);
- $this->assertWantedPattern(
+ $this->assertPattern(
'/Timestamp/',
$this->getFileLine('../temp/test.log', 0),
'Found timestamp');
}
+
+ function getFileLine($filename, $index) {
+ $messages = file($filename);
+ return $messages[$index];
+ }
}
?>
]]></php>
Je vais parcourir ces tests pas \xE0 pas pour ne pas ajouter
trop de confusion. J'ai remplac\xE9 les noms de fichier par
une classe imaginaire <code>FileWriter</code> en provenance
- d'un fichier <em>classes/writer.php</em>.
+ d'un fichier imaginaire <em>classes/writer.php</em>.
Par cons\xE9quent les tests devraient planter
puisque nous n'avons pas encore \xE9crit ce scripteur.
Doit-on le faire maintenant ?
@@ -157,17 +159,17 @@
require_once('../classes/writer.php');</strong>
class Log {<strong>
- var $_writer;</strong>
+ private $writer;</strong>
- function Log(<strong>&$writer</strong>) {<strong>
- $this->_writer = &$writer;</strong>
+ function Log(<strong>$writer</strong>) {<strong>
+ $this->_writer = $writer;</strong>
}
function message($message, $clock = false) {
if (! is_object($clock)) {
$clock = new Clock();
}<strong>
- $this->_writer->write("[" . $clock->now() . "] $message");</strong>
+ $this->writer->write("[" . $clock->now() . "] $message");</strong>
}
}
?>
@@ -204,6 +206,7 @@
r\xE9ellement dans un fichier...
<php><![CDATA[
<?php
+ require_once('simpletest/autorun.php');
require_once('../classes/log.php');
require_once('../classes/clock.php');
require_once('../classes/writer.php');
@@ -211,18 +214,14 @@
Mock::generate('FileWriter');</strong>
class TestOfLogging extends UnitTestCase {
- function TestOfLogging() {
- $this->UnitTestCase('Log class test');
- }<strong>
+ <strong>
function testWriting() {
- $clock = &new MockClock($this);
- $clock->setReturnValue('now', 'Timestamp');
- $writer = &new MockFileWriter($this);
- $writer->expectArguments('write', array('[Timestamp] Test line'));
- $writer->expectCallCount('write', 1);
- $log = &new Log($writer);
- $log->message('Test line', &$clock);
- $writer->tally();
+ $clock = new MockClock($this);
+ $clock->returns('now', 'Timestamp');
+ $writer = new MockFileWriter($this);
+ $writer->expectOnce('write', array('[Timestamp] Test line'));
+ $log = new Log($writer);
+ $log->message('Test line', $clock);
}</strong>
}
?>
@@ -237,7 +236,7 @@
<li>
\xC9tant donn\xE9 que nous travaillons avec des objets fantaisie,
aucun fichier n'a \xE9t\xE9 cr\xE9\xE9 et donc <code>setUp()</code>
- et <code>tearDown()</code> passent dans les tests du scripteur.
+ et <code>tearDown()</code> passent dans les tests <code>FileWriter</code>.
</li>
<li>
D\xE9sormais le test consiste simplement dans l'envoi
@@ -249,7 +248,7 @@
<p>
Les objets fantaisie font beaucoup plus que se comporter
comme des objets, ils ex\xE9cutent aussi des test.
- L'appel <code>expectArguments()</code> dit \xE0 l'objet fantaisie
+ L'appel <code>expectOnce()</code> dit \xE0 l'objet fantaisie
d'attendre un seul param\xE8tre de la cha\xEEne "[Timestamp] Test"
quand la m\xE9thode fantaise <code>write()</code> est appel\xE9e.
Lorsque cette m\xE9thode est appel\xE9e les param\xE8tres attendus
@@ -262,12 +261,8 @@
<p>
L'autre attente, c'est que le <code>write</code> ne soit appel\xE9
qu'une seule et unique fois. Juste l'initialiser ne serait pas suffisant.
- L'objet fantaisie attendrait une \xE9ternit\xE9
- si la m\xE9thode n'\xE9tait jamais appel\xE9e
- et par cons\xE9quent n'enverrait jamais
- le message d'erreur \xE0 la fin du test.
- Pour y faire face, l'appel <code>tally()</code> lui dit de v\xE9rifier
- le nombre d'appel \xE0 ce moment l\xE0.
+ Si la m\xE9thode n'est pas appel\xE9e avant la fin des tests,
+ alors une erreur est g\xE9n\xE9r\xE9e.
Nous pouvons voir tout \xE7a en lan\xE7ant les tests...
<div class="demo">
<h1>All tests</h1>
@@ -280,23 +275,6 @@
<strong>4</strong> passes and <strong>0</strong> fails.</div>
</div>
</p>
- <p>
- En fait nous pouvons encore raccourcir nos tests.
- L'attente de l'objet fantaisie <code>expectOnce()</code>
- peut combiner les deux attentes s\xE9par\xE9es.
-<php><![CDATA[
-function testWriting() {
- $clock = &new MockClock($this);
- $clock->setReturnValue('now', 'Timestamp');
- $writer = &new MockFileWriter($this);<strong>
- $writer->expectOnce('write', array('[Timestamp] Test line'));</strong>
- $log = &new Log($writer);
- $log->message('Test line', &$clock);
- $writer->tally();
-}
-]]></php>
- Cela peut \xEAtre une abr\xE9viation utile.
- </p>
</section>
<section name="frontiere" title="Classes fronti\xE8res">
<p>
@@ -350,10 +328,25 @@
Pour continuer leur ex\xE9cution \xE0 toute vitesse,
vous voudrez les tenir s\xE9par\xE9es.
</p>
+ <p>
+ Un autre b\xE9n\xE9fice de cette s\xE9paration est que pour toutes vos d\xE9pendances
+ la suite de tests est d\xE9sormais plus courte.
+ Supposez \xE0 pr\xE9sent que vous vouliez mettre en place un serveur
+ pour votre application et que vous souhaitiez v\xE9rifiere que tous \xE9l\xE9ment
+ sous-jacents - composants, r\xE9pertoires et configuration - sont correctes.
+ Vous n'avez plus besoin de lancer l'ensemble des tests pour vous en assurer,
+ il suffira de lancer ceux de la classe fronti\xE8re.
+ C'est pour cette raison que cette suite de test s'appelle
+ le plus souvent "setup tests".
+ Passer la \xE0 votre administrateur syst\xE8me, et elle servira \xE0 mettre
+ votre serveur sur pied.
+ </p>
<p>
De plus, un bon d\xE9veloppement passe par des d\xE9cisions
de tri entre les composants \xE0 utiliser.
- Peut-\xEAtre, qui sait, tous ces simulacres pourront
+ \xCAtre capable de changer les d\xE9pendances sous-jacentes
+ facilement est une "bonne chose".
+ Peut-\xEAtre, qui sait, que tous ces simulacres pourront
<a href="improving_design_tutorial.php">am\xE9liorer votre conception</a>.
</p>
</section>
Modified: simpletest/trunk/docs/source/fr/browser_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/fr/browser_documentation.xml 2011-04-29 16:26:02 UTC (rev 2014)
+++ simpletest/trunk/docs/source/fr/browser_documentation.xml 2011-04-29 16:28:25 UTC (rev 2015)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $Id$ -->
<page title="Documentation sur le navigateur scriptable" here="Le navigateur scriptable">
- <synchronisation lang="en" version="1684" date="20/03/2008" maintainer="pp11" />
+ <synchronisation lang="en" version="1803" date="20/03/2008" maintainer="pp11" />
<long_title>Documentation SimpleTest : le composant de navigation web scriptable</long_title>
<content>
<introduction>
@@ -40,9 +40,13 @@
avec le navigateur web vous vous autorisez l'authentification,
la gestion des cookies, le chargement automatique des fen\xEAtres,
les redirections, la transmission de formulaires et la capacit\xE9
- d'examiner les ent\xEAtes. De telles m\xE9thodes sont fragiles dans
- un site en constante \xE9volution et vous voudrez employer une m\xE9thode
- plus directe pour acc\xE9der aux donn\xE9es de fa\xE7on permanente,
+ d'examiner les ent\xEAtes.
+ </p>
+ <p>
+ Ces m\xE9thodes qui se basent sur le contenu textuel des pages
+ sont fragiles dans un site en constante \xE9volution
+ et vous voudrez employer une m\xE9thode plus directe
+ pour acc\xE9der aux donn\xE9es de fa\xE7on permanente,
mais pour des t\xE2ches simples cette technique peut s'av\xE9rer
une solution tr\xE8s rapide.
</p>
@@ -54,6 +58,7 @@
<tr><td><code>head($url, $parameters)</code></td><td>Effectue une requ\xEAte HEAD</td></tr>
<tr><td><code>get($url, $parameters)</code></td><td>T\xE9l\xE9charge une page avec un GET</td></tr>
<tr><td><code>post($url, $parameters)</code></td><td>T\xE9l\xE9charge une page avec un POST</td></tr>
+ <tr><td><code>click($label)</code></td><td>Suit un lien visible ou un bouton texte par son \xE9tiquette</td></tr>
<tr><td><code>clickLink($label)</code></td><td>Suit un lien par son \xE9tiquette</td></tr>
<tr><td><code>isLink($label)</code></td><td>V\xE9rifie l'existance d'un lien par son \xE9tiquette</td></tr>
<tr><td><code>clickLinkById($id)</code></td><td>Suit un lien par son attribut d'identification</td></tr>
@@ -79,9 +84,11 @@
<p>
Naviguer dans les formulaires est similaire \xE0 la <a local="form_testing_documentation">navigation des formulaires via WebTestCase</a>...
<table><tbody>
- <tr><td><code>setField($name, $value)</code></td><td>Modifie tous les champs avec ce nom</td></tr>
+ <tr><td><code>setField($label, $value)</code></td><td>Modifie tous les champs avec cette \xE9tiquette ou ce nom</td></tr>
+ <tr><td><code>setFieldByName($name, $value)</code></td><td>Modifie tous les champs avec ce nom</td></tr>
<tr><td><code>setFieldById($id, $value)</code></td><td>Modifie tous les champs avec cet identifiant</td></tr>
- <tr><td><code>getField($name)</code></td><td>Accesseur de la valeur d'un \xE9l\xE9ment de formulaire</td></tr>
+ <tr><td><code>getField($label)</code></td><td>Accesseur de la valeur d'un \xE9l\xE9ment de formulaire avec cette \xE9tiquette ou ce nom</td></tr>
+ <tr><td><code>getFieldByName($name)</code></td><td>Accesseur de la valeur d'un \xE9l\xE9ment de formulaire avec ce nom</td></tr>
<tr><td><code>getFieldById($id)</code></td><td>Accesseur de la valeur de l'\xE9l\xE9ment de formulaire avec cet identifiant</td></tr>
<tr><td><code>clickSubmit($label)</code></td><td>Transmet le formulaire avec l'\xE9tiquette de son bouton</td></tr>
<tr><td><code>clickSubmitByName($name)</code></td><td>Transmet le formulaire avec l'attribut de son bouton</td></tr>
@@ -91,8 +98,17 @@
<tr><td><code>clickImageById($id, $x, $y)</code></td><td>Clique sur une balise input de type image par son identifiant (id="*")</td></tr>
<tr><td><code>submitFormById($id)</code></td><td>Transmet le formulaire par son identifiant propre</td></tr>
</tbody></table>
- Au jourd d'aujourd'hui il n'existe aucune m\xE9thode pour lister
- les formulaires et les champs disponibles : ce sera probablement
+ Au jourd d'aujourd'hui il n'existe pas beaucoup de m\xE9thodes pour lister
+ les formulaires et les champs disponibles.
+ <table><tbody>
+ <tr><td><code>isClickable($label)</code></td><td>V\xE9rifie si un lien existe avec cette \xE9tiquette ou ce nom</td></tr>
+ <tr><td><code>isSubmit($label)</code></td><td>V\xE9rifie si un bouton existe avec cette \xE9tiquette ou ce nom</td></tr>
+ <tr><td><code>isImage($label)</code></td><td>V\xE9rifie si un bouton image existe avec cette \xE9tiquette ou ce nom</td></tr>
+ <tr><td><code>getLink($label)</code></td><td>Trouve une URL \xE0 partir de son label</td></tr>
+ <tr><td><code>getLinkById($label)</code></td><td>Trouve une URL \xE0 partir de son identifiant</td></tr>
+ <tr><td><code>getUrls()</code></td><td>Liste l'ensemble des liens de la page courante</td></tr>
+ </tbody></table>
+ Ce sera probablement
ajout\xE9 dans des versions successives de SimpleTest.
</p>
<p>
@@ -123,6 +139,7 @@
des m\xE9thodes pour aider au d\xE9bogage.
<table><tbody>
<tr><td><code>setConnectionTimeout($timeout)</code></td><td>Ferme la socket avec un d\xE9lai trop long</td></tr>
+ <tr><td><code>getUrl()</code></td><td>L'URL de la page charg\xE9e le plus r\xE9cemment</td></tr>
<tr><td><code>getRequest()</code></td><td>L'ent\xEAte de la requ\xEAte brute de la page ou de la fen\xEAtre</td></tr>
<tr><td><code>getHeaders()</code></td><td>L'ent\xEAte de r\xE9ponse de la page ou de la fen\xEAtre</td></tr>
<tr><td><code>getTransportError()</code></td><td>N'importe quel erreur au niveau de la socket dans le dernier t\xE9l\xE9chargement</td></tr>
@@ -130,6 +147,7 @@
<tr><td><code>getMimeType()</code></td><td>Le type Mime de la page our de la fen\xEAtre</td></tr>
<tr><td><code>getAuthentication()</code></td><td>Le type d'authentification dans l'ent\xEAte d'une provocation 401</td></tr>
<tr><td><code>getRealm()</code></td><td>Le realm d'authentification dans l'ent\xEAte d'une provocation 401</td></tr>
+ <tr><td><code>getBaseUrl()</code></td><td>Uniquement la base de l'URL de la page charg\xE9e le plus r\xE9cemment</td></tr>
<tr><td><code>setMaximumRedirects($max)</code></td><td>Nombre de redirections avant que la page ne soit charg\xE9e automatiquement</td></tr>
<tr><td><code>setMaximumNestedFrames($max)</code></td><td>Protection contre des framesets r\xE9cursifs</td></tr>
<tr><td><code>ignoreFrames()</code></td><td>Neutralise le support des fen\xEAtres</td></tr>
@@ -158,14 +176,14 @@
<php><![CDATA[<strong>
class TestOfRegistration extends UnitTestCase {
function testNewUserAddedToAuthenticator() {</strong>
- $browser = &new SimpleBrowser();
+ $browser = new SimpleBrowser();
$browser->get('http://my-site.com/register.php');
$browser->setField('email', 'me@here');
$browser->setField('password', 'Secret');
$browser->clickSubmit('Register');
<strong>
- $authenticator = &new Authenticator();
- $member = &$authenticator->findByEmail('me@here');
+ $authenticator = new Authenticator();
+ $member = $authenticator->findByEmail('me@here');
$this->assertEqual($member->getPassword(), 'Secret');</strong>
}
}
@@ -205,7 +223,7 @@
]]></php>
Vous pouvez aussi utiliser la classe <code>SimpleBrowser</code>
quand vous souhaitez \xE9crire des sc\xE9narios de test en utilisant
- un autre outil que SimpleTest.
+ un autre outil que SimpleTest, comme PHPUnit par exemple.
</p>
</section>
</content>
Modified: simpletest/trunk/docs/source/fr/display_subclass_tutorial.xml
===================================================================
--- simpletest/trunk/docs/source/fr/display_subclass_tutorial.xml 2011-04-29 16:26:02 UTC (rev 2014)
+++ simpletest/trunk/docs/source/fr/display_subclass_tutorial.xml 2011-04-29 16:28:25 UTC (rev 2015)
@@ -1,23 +1,28 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $Id$ -->
<page title="Changer l'affichage du test" here="Changer l'affichage du test">
- <synchronisation lang="en" version="1771" date="20/04/2008" maintainer="pp11" />
+ <synchronisation lang="en" version="1876" date="29/04/2011" maintainer="pp11" />
<long_title>Tutorial de test unitaire en PHP - Sous-classer l'affichage du test</long_title>
<content>
<introduction>
<p>
- Le composant affichage de SimpleTest est en fait
- la derni\xE8re partie \xE0 d\xE9velopper.
- Des morceaux de la section suivante changeront prochainement
- et -- avec optimisme -- des composants d'affichage
- plus sophistiqu\xE9s seront \xE9crits, mais pour l'instant
- si un affichage minime n'est pas suffisant,
+ SimpleTest est fourni avec un composant affichage ultra-simple.
+ La plupart du temps vous souhaitez juste savoir si votre test passe.
+ Et s'il ne passe pas, c'est la raison qui est importante.
+ Rien de plus.
+ </p>
+ <p>
+ Parfois vous aurez besoin d'une sortie pluse sophistiqu\xE9e
+ parfois pour un boss, un responsable ou un tiers, parfois
+ pour les tests de recette.
+ Si un affichage minime n'est pas suffisant,
voici comment r\xE9aliser le votre.
</p>
</introduction>
<section name="succ\xE8s" title="Je veux voir les succ\xE8s !">
<p>
- Bon d'accord, voici comment.
+ Vous voulez vraiment afficher les succ\xE8s ?
+ Alors d'accord, voici comment.
</p>
<p>
Nous devons cr\xE9er une sous-classe de l'affichage utilis\xE9e,
@@ -27,7 +32,7 @@
pour l'instant elle a l'interface suivante...
<php><![CDATA[
class HtmlReporter extends TestDisplay {
- public TestHtmlDisplay() { ... }
+ public __construct() { ... }
public void paintHeader(string $test_name) { ... }
public void paintFooter(string $test_name) { ... }
public void paintStart(string $test_name, $size) { ... }
@@ -48,7 +53,7 @@
si cela vous int\xE9resse.
<ul class="api">
<li>
- <code>HtmlReporter()</code><br />
+ <code>__construct()</code><br />
est le constructeur. Notez qu'un test unitaire initie
le lien vers l'affichage plut\xF4t que l'inverse.
L'affichage est un r\xE9ceptacle passif des \xE9v\xE8nements de test.
@@ -100,16 +105,9 @@
et y placer cette classe vide...
<php><![CDATA[
<strong><?php
- if (! defined('SIMPLE_TEST')) {
- define('SIMPLE_TEST', 'simpletest/');
- }
- require_once(SIMPLE_TEST . 'reporter.php');
+ require_once('simpletest/reporter.php');
class ShowPasses extends HtmlReporter {
-
- function ShowPasses() {
- $this->HtmlReporter();
- }
}
?></strong>
]]></php>
@@ -136,10 +134,6 @@
En la transposant dans notre nouvelle classe...
<php><![CDATA[
class ShowPasses extends HtmlReporter {
-
- function ShowPasses() {
- $this->HtmlReporter();
- }
<strong>
function paintPass($message) {
parent::paintPass($message);
@@ -155,17 +149,19 @@
Maintenant pour utiliser notre nouvelle classe,
nous allons modifier notre fichier <em>tests/all_tests.php</em>...
<php><![CDATA[
-<?php
- if (! defined('SIMPLE_TEST')) {
- define('SIMPLE_TEST', 'simpletest/');
- }
- require_once(SIMPLE_TEST . 'unit_tester.php');<strong>
- require_once('show_passes.php');</strong>
+<?php<strong>
+require_once('show_passes.php');
+require_once('simpletest/simpletest.php');
+SimpleTest::prefer(new ShowPasses());</strong>
+require_once('simpletest/autorun.php');
- $test = &new GroupTest('All tests');
- $test->addTestFile('log_test.php');
- $test->addTestFile('clock_test.php');
- $test->run(<strong>new ShowPasses()</strong>);
+class AllTests extends TestSuite {
+ function __construct() {
+ parent::__construct('All tests');
+ $this->addFile(dirname(__FILE__).'/log_test.php');
+ $this->addFile(dirname(__FILE__).'/clock_test.php');
+ }
+}
?>
]]></php>
Nous pouvons le lancer pour voir le r\xE9sultat de notre bricolage...
@@ -187,10 +183,6 @@
<php><![CDATA[
class ShowPasses extends HtmlReporter {
- function ShowPasses() {
- $this->HtmlReporter();
- }
-
function paintPass($message) {
parent::paintPass($message);
print "<span class=\"pass\">Pass</span>: ";
@@ -256,6 +248,10 @@
Si vous utilisez un autre outil,
n'h\xE9sitez pas \xE0 sauter pardessus.
</link>
+ <link>
+ Mais vous pouvez aussi aller jusqu'au
+ <a href="mock_objects_tutorial.php">objets fantaisie</a>.
+ </link>
</external>
<meta>
<keywords>
Modified: simpletest/trunk/docs/source/fr/download_website.xml
===================================================================
--- simpletest/trunk/docs/source/fr/download_website.xml 2011-04-29 16:26:02 UTC (rev 2014)
+++ simpletest/trunk/docs/source/fr/download_website.xml 2011-04-29 16:28:25 UTC (rev 2015)
@@ -1,14 +1,14 @@
<?xml version="1.0"?>
<!-- $Id$ -->
<page title="Télécharger SimpleTest" here="Télécharger SimpleTest">
- <synchronisation lang="en" version="1730" date="08/04/2008" maintainer="pp11" />
+ <synchronisation lang="en" version="2002" date="29/04/2011" maintainer="pp11" />
<long_title>Télécharger SimpleTest</long_title>
<content>
<section name="current-release" title="Version courante">
<p>
La version courante est :
- <a href="http://downloads.sourceforge.net/simpletest/simpletest_1.0.1.tar.gz">
- SimpleTest v1.0.1</a>.
+ <a href="http://sourceforge.net/projects/simpletest/files/simpletest/simpletest_1.1/simpletest_1.1alpha2.tar.gz/download">
+ SimpleTest v1.1alpha2</a>.
</p>
<p>
Vous pouvez télécharger cette version depuis
Modified: simpletest/trunk/docs/source/fr/expectation_documentation.xml
===================================================================
--- simpletest/trunk/docs/source/fr/expectation_documentation.xml 2011-04-29 16:26:02 UTC (rev 2014)
+++ simpletest/trunk/docs/source/fr/expectation_documentation.xml 2011-04-29 16:28:25 UTC (rev 2015)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- $Id$ -->
<page title="Documentation sur les attentes" here="Les attentes">
- <synchronisation lang="en" version="1687" date="20/03/2008" maintainer="pp11" />
+ <synchronisation lang="en" version="1952" date="29/04/2011" maintainer="pp11" />
<long_title>Documentation SimpleTest : \xE9tendre le testeur unitaire avec des classes d'attentes suppl\xE9mentaires</long_title>
<content>
<section name="fantaisie" title="Plus de contr\xF4le sur les objets fantaisie">
@@ -32,7 +32,7 @@
<php><![CDATA[
<strong>class NewsService {
...
- function publish(&$writer) {
+ function publish($writer) {
if (! $this->isConnected()) {
$writer->write('Cannot connect to news service "' .
$this->_name . '" at this time. ' .
@@ -48,13 +48,13 @@
class TestOfNewsService extends UnitTestCase {
...
function testConnectionFailure() {<strong>
- $writer = &new MockWriter($this);
+ $writer = new MockWriter($this);
$writer->expectOnce('write', array(
'Cannot connect to news service ' .
'"BBC News" at this time. ' .
'Please try again later.'));
- $service = &new NewsService('BBC News');
+ $service = new NewsService('BBC News');
$service->publish($writer);
$writer->tally();</strong>
@@ -75,12 +75,12 @@
class TestOfNewsService extends UnitTestCase {
...
function testConnectionFailure() {
- $writer = &new MockWriter($this);<strong>
+ $writer = new MockWriter($this);<strong>
$writer->expectOnce(
'write',
- array(new WantedPatternExpectation('/cannot connect/i')));</strong>
+ array(new PatternExpectation('/cannot connect/i')));</strong>
- $service = &new NewsService('BBC News');
+ $service = new NewsService('BBC News');
$service->publish($writer);
$writer->tally();
@@ -88,14 +88,14 @@
}
]]></php>
Plut\xF4t que de transmettre le param\xE8tre attendu au <code>MockWriter</code>,
- nous envoyons une classe d'attente appel\xE9e <code>WantedPatternExpectation</code>.
+ nous envoyons une classe d'attente appel\xE9e <code>PatternExpectation</code>.
L'objet fantaisie est suffisamment \xE9l\xE9gant pour reconna\xEEtre
qu'il s'agit d'un truc sp\xE9cial et pour le traiter diff\xE9remment.
Plut\xF4t que de comparer l'argument entrant \xE0 cet objet,
il utilise l'objet attente lui-m\xEAme pour ex\xE9cuter le test.
</p>
<p>
- <code>WantedPatternExpectation</code> utilise
+ <code>PatternExpectation</code> utilise
l'expression rationnelle pour la comparaison avec son constructeur.
A chaque fois qu'une comparaison est fait \xE0 travers
<code>MockWriter</code> par rapport \xE0 cette classe attente,
@@ -108,15 +108,18 @@
<p>
Les classes attente possibles sont...
<table><tbody>
+ <tr><td><code>AnythingExpectation</code></td><td>Sera toujours valid\xE9</td></tr>
<tr><td><code>EqualExpectation</code></td><td>Une \xE9galit\xE9, plut\xF4t que la plus forte comparaison \xE0 l'identique</td></tr>
<tr><td><code>NotEqualExpectation</code></td><td>Une comparaison sur la non-\xE9galit\xE9</td></tr>
<tr><td><code>IndenticalExpectation</code></td><td>La v\xE9rification par d\xE9faut de l'objet fantaisie qui doit correspondre exactement</td></tr>
<tr><td><code>NotIndenticalExpectation</code></td><td>Inverse la logique de l'objet fantaisie</td></tr>
- <tr><td><code>WantedPatternExpectation</code></td><td>Utilise une expression rationnelle Perl pour comparer une cha\xEEne</td></tr>
- <tr><td><code>NoUnwantedPatternExpectation</code></td><td>Passe seulement si l'expression rationnelle Perl \xE9choue</td></tr>
+ <tr><td><code>PatternExpectation</code></td><td>Utilise une expression rationnelle Perl pour comparer une cha\xEEne</td></tr>
+ <tr><td><code>NoPatternExpectation</code></td><td>Passe seulement si l'expression rationnelle Perl \xE9choue</td></tr>
<tr><td><code>IsAExpectation</code></td><td>V\xE9rifie le type ou le nom de la classe uniquement</td></tr>
<tr><td><code>NotAExpectation</code></td><td>L'oppos\xE9 de <code>IsAExpectation</code></td></tr>
<tr><td><code>MethodExistsExpectation</code></td><td>V\xE9rifie si la m\xE9thode est disponible sur un objet</td></tr>
+ <tr><td><code>TrueExpectation</code></td><td>Accepte n'importe quelle variable PHP qui vaut vrai</td></tr>
+ <tr><td><code>FalseExpectation</code></td><td>Accepte n'importe quelle variable PHP qui vaut faux</td></tr>
</tbody></table>
La plupart utilisent la valeur attendue dans le constructeur.
Les exceptions sont les v\xE9rifications sur motif,
@@ -144,11 +147,11 @@
Stub::generate('Authorisation');
<strong>
$authorisation = new StubAuthorisation();
-$authorisation->setReturnValue(
+$authorisation->returns(
'isAllowed',
true,
array(new IsAExpectation('Session', 'Must be a session')));
-$authorisation->setReturnValue('isAllowed', false);</strong>
+$authorisation->returns('isAllowed', false);</strong>
]]></php>
Le comportement par d\xE9faut du bouchon serveur
est d\xE9fini pour renvoyer <code>false</code>
@@ -175,7 +178,7 @@
la validit\xE9 d'adresses IP. Pour fonctionner correctement
avec les bouchons serveurs et les objets fantaisie,
cette nouvelle classe d'attente devrait \xE9tendre
- <code>SimpleExpectation</code>...
+ <code>SimpleExpectation</code> ou une autre de ses sous-classes...
<php><![CDATA[
<strong>class ValidIp extends SimpleExpectation {
@@ -198,6 +201,47 @@
Cette classe peut d\xE9sormais \xEAtre employ\xE9e \xE0 la place
des classes d'attente pr\xE9c\xE9dentes.
</p>
+ <p>
+ Voici un exemple plus typique, v\xE9rifier un hash...
+<php><![CDATA[
+<strong>class JustField extends EqualExpectation {
+ private $key;
+
+ function __construct($key, $expected) {
+ parent::__construct($expected);
+ $this->key = $key;
+ }
+
+ function test($compare) {
+ if (! isset($compare[$this->key])) {
+ return false;
+ }
+ return parent::test($compare[$this->key]);
+ }
+
+ function testMessage($compare) {
+ if (! isset($compare[$this->key])) {
+ return 'Key [' . $this->key . '] does not exist';
+ }
+ return 'Key [' . $this->key . '] -> ' .
+ parent::testMessage($compare[$this->key]);
+ }
+}</strong>
+]]></php>
+ L'habitude a \xE9t\xE9 prise pour s\xE9parer les clauses du message avec
+ "<![CDATA[ -> ]]>".
+ Cela permet aux outils d\xE9riv\xE9s de reformater la sortie.
+ </p>
+ <p>
+ Supposons qu'un authentificateur s'attend \xE0 recevoir
+ une ligne de base de donn\xE9es correspondant \xE0 l'utilisateur,
+ et que nous avons juste besoin de valider le nom d'utilisateur.
+ Nous pouvons le faire tr\xE8s simplement avec...
+<php><![CDATA[
+$mock->expectOnce('authenticate',
+ array(new JustKey('username', 'marcus')));
+]]></php>
+ </p>
</section>
<section name="unitaire" title="Sous le capot du testeur unitaire">
<p>
@@ -210,20 +254,23 @@
</p>
<p>
La m\xE9thode la plus directe est d'utiliser la m\xE9thode
- <code>SimpleTest::assertExpectation()</code> pour effectuer le test...
+ <code>SimpleTest::assert()</code> pour effectuer le test...
<php><![CDATA[
<strong>class TestOfNetworking extends UnitTestCase {
...
function testGetValidIp() {
$server = &new Server();
- $this->assertExpectation(
+ $this->assert(
new ValidIp(),
$server->getIp(),
'Server IP address->%s');
}
}</strong>
]]></php>
- C'est plut\xF4t sale par rapport \xE0 notre syntaxe habituelle
+ <code>assert()</code> testera toute attente directement.
+ </p>
+ <p>
+ C'est plut\xF4t sale par rapport \xE0 notre syntaxe habituelle
du type <code>assert...()</code>.
</p>
<p>
@@ -247,11 +294,19 @@
}
}
]]></php>
- Il est peu probable que nous ayons besoin
- de ce niveau de contr\xF4le sur la machinerie de test.
+ It is rare to need the expectations for more than pattern
+ matching, but these facilities do allow testers to build
+ some sort of domain language for testing their application.
+ Also, complex expectation classes could make the tests
+ harder to read and debug.
+ In effect extending the test framework to create their own tool set.
+
+
Il est assez rare que le besoin d'une attente d\xE9passe
- le stade de la reconnaissance d'un motif.
- De plus, les classes d'attente complexes peuvent rendre
+ le stade de la reconnaissance d'un motif, mais ils permettent
+ aux testeurs de construire leur propre langage d\xE9di\xE9 ou DSL
+ (Domain Specific Language) pour tester leurs applications.
+ Attention, les classes d'attente complexes peuvent rendre
les tests difficiles \xE0 lire et \xE0 d\xE9boguer.
Ces m\xE9canismes sont v\xE9ritablement l\xE0 pour les auteurs
de syst\xE8me qui \xE9tendront le framework de test
Modified: simpletest/trunk/docs/source/fr/extension_eclipse.xml
===================================================================
--- simpletest/trunk/docs/source/fr/extension_eclipse.xml 2011-04-29 16:26:02 UTC (rev 2014)
+++ simpletest/trunk/docs/source/fr/extension_eclipse.xml 2011-04-29 16:28:25 UTC (rev 2015)
@@ -1,8 +1,8 @@
<?xml version="1.0"?>
<!-- $Id$ -->
-<page title="Plugin Eclipse pour Simpletest" here="Plugin Eclipse">
- <synchronisation lang="en" version="1687" date="20/03/2008" maintainer="pp11" />
- <long_title>Documentation du plugin Eclipse pour Simpletest</long_title>
+<page title="Plugin Eclipse pour SimpleTest" here="Plugin Eclipse">
+ <synchronisation lang="en" version="1878" date="2ç/04/2011" maintainer="pp11" />
+ <long_title>Documentation du plugin Eclipse pour SimpleTest</long_title>
<content>
<section name="compat" title="Compatibilité">
<ul>
@@ -35,7 +35,7 @@
les paramètres nécessaires au besoin.
</li>
<li>
- <b>Simpletest</b><br/>
+ <b>SimpleTest</b><br/>
Le plugin est prévu pour tourner avec une version spécifique de SimpleTest.
Et même plus : il inclut la version associée de SimpleTest compatible.
Un plugin avec comme numéro de version 1.0.0_0.0.4 indiquerait que les plugin est compatible
@@ -57,7 +57,7 @@
<section name="install" title="Installation">
<ol>
<li>Télécharger et installer Eclipse (<a href="http://www.eclipse.org">www.eclipse.org</a>) – si vous n'êtes pas sûr quoi télécharger, prenez le SDK 3.1.0 d'Eclipse.</li>
- <li>Télécharger le dernier fichier ZIP du plugin Eclipse pour SimpleTest (<a href="http://sourceforge.net/project/showfiles.php?group_id=76550&package_id=159054">Simpletest Sourceforge</a>)</li>
+ <li>Télécharger le dernier fichier ZIP du plugin Eclipse pour SimpleTest (<a href="http://sourceforge.net/project/showfiles.php?group_id=76550&package_id=159054">SimpleTest Sourceforge</a>)</li>
<li>Extraire le contenu du fichier ZIP vers un répertoire temporaire {cette documentation y fera référence par $unzip}</li>
<li>Lancer Eclipse</li>
<li>Ouvrir "Install Wizard" en cliquant sur "Help > Software Updates > Find and Install" depuis la barre du menu.</li>
@@ -67,7 +67,7 @@
<li>Cliquer sur le bouton "OK".</li>
<li>Dans la fenêtre "Edit Local Site", cliquer sulick the "OK" button</li>
<li>Cliquer sur le bouton "Finish"</li>
- <li>Dans la fenêtre "Search Results", chercher puis sélectionner "Simpletest plug-in 0.0.x"</li>
+ <li>Dans la fenêtre "Search Results", chercher puis sélectionner "SimpleTest plug-in 0.0.x"</li>
<li>Cliquer sur le bouton "Next"</li>
<li>Lire la licence et l'accepter en cliquant le bouton radio "I accept the terms in the license agreement" puis cliquer sur le bouton "Next"</li>
<li>Dans la fenêtre "Installation", vous pouvez changer le lieu d'installation -- la plupart des utilisateurs appuyeront juste sur le bouton "Finish"</li>
@@ -82,7 +82,7 @@
Sélectionner "Window > Preferences" dans la barre de menu
</li>
<li>
- Sélectionner "Simpletest" dans les catégories sur la gauche de la boîte de dialogue.
+ Sélectionner "SimpleTest" dans les catégories sur la gauche de la boîte de dialogue.
</li>
<li>
Remplir ou choisir le répertoire contenant l'éxécutable PHP à utliser.
@@ -110,7 +110,7 @@
d'installation ci-dessus (vous ne devriez pas avoir à refaire la configuration initiale).
<ol>
<li>Sélectionner "Help > Software Updates > Manage Configuration" dans le menu</li>
- <li>Trouver le plugin Simpletest dans la liste et le choisir</li>
+ <li>Trouver le plugin SimpleTest dans la liste et le choisir</li>
<li>Dans la section de droite, cliquer sur le lien "Scan for Updates"</li>
<li>Si aucune mise à jour n'est détectée, naviguer vers "Window > Preferences > Install/Update > Valid Updates" dans les préférences d'Eclipse
et sélectionner "compatible", en lieu et place de "equivalent". Puis recommencer les étapes ci-dessus.</li>
@@ -130,8 +130,8 @@
les répertoires qui avaient été ajoutés.
<ol>
<li>Sélectionner "Help > Software Updates > Manage Configuration"</li>
- <li>Choisir le plugin Simpletest dans la liste</li>
- <li>Cliquer-droit sur le plugin Simpletest et sélectionner l'option "Disable"</li>
+ <li>Choisir le plugin SimpleTest dans la liste</li>
+ <li>Cliquer-droit sur le plugin SimpleTest et sélectionner l'option "Disable"</li>
<li>Accepter le redémarrage d'Eclipse</li>
<li>Une fois Eclipse redémarré, sélectionner "Help > Software Updates > Manage Configuration" depuis le menu</li>
<li>Sélectionner l'option "Show Disabled Features" dans la barre d'outils</li>
@@ -175,7 +175,7 @@
]]></php>
</li>
<li>Sélectionner "File > Save" depuis le menu.</li>
- <li>Cliquer-droit sur test1.php et sélectionner "Run > Run Simpletest".</li>
+ <li>Cliquer-droit sur test1.php et sélectionner "Run > Run SimpleTest".</li>
<li>La "Result View" devrait se remplir avec les informations sur le résultat du test
et la console SimpleTest devrait se remplir avec d'autres informations aussi.</li>
</ol>
@@ -206,7 +206,7 @@
]]></php>
</li>
<li>Sélectionner "File > save" dans la barre de menu.</li>
- <li>Cliquer-droit sur grouptest.php et sélectionner "Run > Run Simpletest".</li>
+ <li>Cliquer-droit sur grouptest.php et sélectionner "Run > Run SimpleTest".</li>
<li>La "Result View" devrait se remplir avec les informations issus du test lancé,
idem pour pour la console SimpleTest.</li>
</ol>
@@ -222,15 +222,15 @@
class myGroupTest extends GroupTest {
function myGroupTest() {
parent::GroupTest('');
- $this->addTestFile(dirname(__FILE__).'/test1.php');
- $this->addTestFile(dirname(__FILE__).'/test2.php');
+ $this->addFile(dirname(__FILE__).'/test1.php');
+ $this->addFile(dirname(__FILE__).'/test2.php');
}
}
?>
]]></php>
</li>
<li>Sélectionner "File > Save" depuis le menu.</li>
- <li>Cliquer-droit sur test1.php et sélectionner "Run > Run Simpletest".</li>
+ <li>Cliquer-droit sur test1.php et sélectionner "Run > Run SimpleTest".</li>
<li>La "Result View" devrait se remplir avec les informations sur le résultat du test
et la console SimpleTest devrait se remplir avec d'autres informations aussi.</li>
</ol>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pp...@us...> - 2011-04-29 16:26:09
|
Revision: 2014
http://simpletest.svn.sourceforge.net/simpletest/?rev=2014&view=rev
Author: pp11
Date: 2011-04-29 16:26:02 +0000 (Fri, 29 Apr 2011)
Log Message:
-----------
Cleaning up the output when packaging the documentation for the website
Modified Paths:
--------------
simpletest/trunk/packages/simpletest.org/index.php
Modified: simpletest/trunk/packages/simpletest.org/index.php
===================================================================
--- simpletest/trunk/packages/simpletest.org/index.php 2011-04-29 09:29:45 UTC (rev 2013)
+++ simpletest/trunk/packages/simpletest.org/index.php 2011-04-29 16:26:02 UTC (rev 2014)
@@ -54,7 +54,7 @@
$synchronisation = new PackagingSynchronisation($source_path.$language.$file);
$result .= " ".$synchronisation->result();
- echo $destination_path.$destination." : ".$result."\n";
+ echo $destination." : ".$result."\n";
}
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: SourceForge.net <no...@so...> - 2011-04-29 09:31:09
|
Patches item #2896044, was opened at 2009-11-11 17:48 Message generated for change (Comment added) made by pp11 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547457&aid=2896044&group_id=76550 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Accepted Priority: 5 Private: No Submitted By: Vasyl Pasternak (vasylp) >Assigned to: Perrick Penet (pp11) Summary: browser/submitFormById additional form parameters support Initial Comment: Added second argument to submitFormById, similar to clickSubmit, which sends additional form parameters to the server (which originally should be set by JavaScript). ---------------------------------------------------------------------- >Comment By: Perrick Penet (pp11) Date: 2011-04-29 11:31 Message: Your patch has been applied. I hope you'll like it ! Yours ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547457&aid=2896044&group_id=76550 |
|
From: <pp...@us...> - 2011-04-29 09:29:52
|
Revision: 2013
http://simpletest.svn.sourceforge.net/simpletest/?rev=2013&view=rev
Author: pp11
Date: 2011-04-29 09:29:45 +0000 (Fri, 29 Apr 2011)
Log Message:
-----------
Patch 2896044 : browser/submitFormById additional form parameters support - submitted by Vasyl Pasternak ( vasylp )
Modified Paths:
--------------
simpletest/trunk/browser.php
simpletest/trunk/form.php
simpletest/trunk/test/acceptance_test.php
simpletest/trunk/test/site/network_confirm.php
simpletest/trunk/test/site/page_request.php
simpletest/trunk/web_tester.php
Modified: simpletest/trunk/browser.php
===================================================================
--- simpletest/trunk/browser.php 2011-04-29 08:57:00 UTC (rev 2012)
+++ simpletest/trunk/browser.php 2011-04-29 09:29:45 UTC (rev 2013)
@@ -1039,13 +1039,13 @@
* @return string/boolean Page on success.
* @access public
*/
- function submitFormById($id) {
+ function submitFormById($id, $additional = false) {
if (! ($form = $this->page->getFormById($id))) {
return false;
}
$success = $this->load(
$form->getAction(),
- $form->submit());
+ $form->submit($additional));
return ($success ? $this->getContent() : $success);
}
Modified: simpletest/trunk/form.php
===================================================================
--- simpletest/trunk/form.php 2011-04-29 08:57:00 UTC (rev 2012)
+++ simpletest/trunk/form.php 2011-04-29 09:29:45 UTC (rev 2013)
@@ -350,8 +350,12 @@
* @return hash Submitted values.
* @access public
*/
- function submit() {
- return $this->encode();
+ function submit($additional = false) {
+ $encoding = $this->encode();
+ if ($additional) {
+ $encoding->merge($additional);
+ }
+ return $encoding;
}
}
?>
\ No newline at end of file
Modified: simpletest/trunk/test/acceptance_test.php
===================================================================
--- simpletest/trunk/test/acceptance_test.php 2011-04-29 08:57:00 UTC (rev 2012)
+++ simpletest/trunk/test/acceptance_test.php 2011-04-29 09:29:45 UTC (rev 2013)
@@ -780,6 +780,12 @@
$this->assertText('go=[Go!]');
}
+ function testFormSubmissionWithIdsAndAdditionnalData() {
+ $this->get($this->samples() . 'form.html');
+ $this->assertTrue($this->clickSubmitById(99, array('additionnal' => "data")));
+ $this->assertText('additionnal=[data]');
+ }
+
function testFormSubmissionWithLabels() {
$this->get($this->samples() . 'form.html');
$this->assertField('Text A', '');
Modified: simpletest/trunk/test/site/network_confirm.php
===================================================================
--- simpletest/trunk/test/site/network_confirm.php 2011-04-29 08:57:00 UTC (rev 2012)
+++ simpletest/trunk/test/site/network_confirm.php 2011-04-29 09:29:45 UTC (rev 2013)
@@ -1,11 +1,11 @@
<?php
- if (count($HTTP_COOKIE_VARS) > 0) {
+ if (isset($HTTP_COOKIE_VARS) and count($HTTP_COOKIE_VARS) > 0) {
$_COOKIE = $HTTP_COOKIE_VARS;
}
- if (count($HTTP_GET_VARS) > 0) {
+ if (isset($HTTP_GET_VARS) and count($HTTP_GET_VARS) > 0) {
$_GET = $HTTP_GET_VARS;
}
- if (count($HTTP_POST_VARS) > 0) {
+ if (isset($HTTP_POST_VARS) and count($HTTP_POST_VARS) > 0) {
$_POST = $HTTP_POST_VARS;
}
if (! isset($_SERVER)) {
Modified: simpletest/trunk/test/site/page_request.php
===================================================================
--- simpletest/trunk/test/site/page_request.php 2011-04-29 08:57:00 UTC (rev 2012)
+++ simpletest/trunk/test/site/page_request.php 2011-04-29 09:29:45 UTC (rev 2013)
@@ -47,13 +47,13 @@
}
function get() {
- $request = &new PageRequest($_SERVER['QUERY_STRING']);
+ $request = new PageRequest($_SERVER['QUERY_STRING']);
return $request->getAll();
}
function post() {
global $HTTP_RAW_POST_DATA;
- $request = &new PageRequest($HTTP_RAW_POST_DATA);
+ $request = new PageRequest($HTTP_RAW_POST_DATA);
return $request->getAll();
}
}
Modified: simpletest/trunk/web_tester.php
===================================================================
--- simpletest/trunk/web_tester.php 2011-04-29 08:57:00 UTC (rev 2012)
+++ simpletest/trunk/web_tester.php 2011-04-29 09:29:45 UTC (rev 2013)
@@ -1012,8 +1012,8 @@
* @return boolean/string Page on success.
* @access public
*/
- function submitFormById($id) {
- return $this->failOnError($this->browser->submitFormById($id));
+ function submitFormById($id, $additional = false) {
+ return $this->failOnError($this->browser->submitFormById($id, $additional));
}
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pp...@us...> - 2011-04-29 08:57:06
|
Revision: 2012
http://simpletest.svn.sourceforge.net/simpletest/?rev=2012&view=rev
Author: pp11
Date: 2011-04-29 08:57:00 +0000 (Fri, 29 Apr 2011)
Log Message:
-----------
Patch 3136975 : Unset $context->test between calls to SimpleTestCase->run
Modified Paths:
--------------
simpletest/trunk/test_case.php
Modified: simpletest/trunk/test_case.php
===================================================================
--- simpletest/trunk/test_case.php 2011-04-29 08:22:48 UTC (rev 2011)
+++ simpletest/trunk/test_case.php 2011-04-29 08:57:00 UTC (rev 2012)
@@ -149,6 +149,7 @@
$reporter->paintCaseEnd($this->getLabel());
}
unset($this->reporter);
+ $context->setTest(null);
return $reporter->getStatus();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: SourceForge.net <no...@so...> - 2011-04-29 08:57:02
|
Patches item #3136975, was opened at 2010-12-14 04:54 Message generated for change (Comment added) made by pp11 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547457&aid=3136975&group_id=76550 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Deleted >Resolution: Fixed Priority: 5 Private: No Submitted By: https://www.google.com/accounts () >Assigned to: Perrick Penet (pp11) Summary: Unset $context->test between calls to SimpleTestCase->run Initial Comment: Hello, I hope you consider this patch. It's a very simple patch to force unset of $context->test at the end of SimpleTestCase->run(). The reason why this is useful is for situations where running Group tests where each test has special one time setup in the constructor. In our case, we setup storage containers and remove the containers using a __destruct() method in a container manager class. In the unpatched situation, when executing sequential tests in a group, the __destruct() methods of the previous test case will only run AFTER the __construct() of the next test case. If you have any questions please let me know and I can show you some example code privately. ---------------------------------------------------------------------- >Comment By: Perrick Penet (pp11) Date: 2011-04-29 10:57 Message: Your patch has been applied : thanks for the feed-back. Yours ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547457&aid=3136975&group_id=76550 |
|
From: SourceForge.net <no...@so...> - 2011-04-29 08:44:03
|
Bugs item #2779108, was opened at 2009-04-23 03:13 Message generated for change (Comment added) made by pp11 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=2779108&group_id=76550 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Unit test framework Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) >Assigned to: Perrick Penet (pp11) Summary: Simpletest chokes on include paths Initial Comment: When trying to use simpletest with include paths it chokes. I wouldn't normally consider this a defect but it looks like the only reason it is not working is simpleFileLoader::_scrapeClassesFromFile() ? It looks like the rest of the time that path is used is thru includes / autoloading. >From the method's docblock "This is probably too clever by half. Figuring this * out after a failed test case is going to be tricky for us, * never mind the user. A test case should not be included * twice anyway." I concur ;-) ---------------------------------------------------------------------- >Comment By: Perrick Penet (pp11) Date: 2011-04-29 10:44 Message: Do you have an example or a failing test case ? It's always easier that way to trace the defect and eventually fix something. Yours ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=2779108&group_id=76550 |
|
From: SourceForge.net <no...@so...> - 2011-04-29 08:40:14
|
Bugs item #2695534, was opened at 2009-03-19 22:15 Message generated for change (Comment added) made by pp11 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=2695534&group_id=76550 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Documentation Group: None >Status: Closed >Resolution: Fixed Priority: 9 Private: No Submitted By: Perrick Penet (pp11) Assigned to: Perrick Penet (pp11) Summary: Remove all references to methods assertError() Initial Comment: Remove all references to methods assertError(), assertNoErrors(), swallowErrors(). They are now deprecated. ---------------------------------------------------------------------- >Comment By: Perrick Penet (pp11) Date: 2011-04-29 10:40 Message: They are all gone from the documenation in english. The french version should follow soon. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=2695534&group_id=76550 |
|
From: <pp...@us...> - 2011-04-29 08:22:55
|
Revision: 2011
http://simpletest.svn.sourceforge.net/simpletest/?rev=2011&view=rev
Author: pp11
Date: 2011-04-29 08:22:48 +0000 (Fri, 29 Apr 2011)
Log Message:
-----------
Fix for bug report n?\194?\176 2890622 : Please remove trailing whitespace from code - submitted by daniel hahler ( blueyed )
Modified Paths:
--------------
simpletest/trunk/arguments.php
simpletest/trunk/authentication.php
simpletest/trunk/autorun.php
simpletest/trunk/collector.php
simpletest/trunk/cookies.php
simpletest/trunk/default_reporter.php
simpletest/trunk/eclipse.php
simpletest/trunk/encoding.php
simpletest/trunk/errors.php
simpletest/trunk/http.php
simpletest/trunk/recorder.php
simpletest/trunk/reflection_php4.php
simpletest/trunk/reflection_php5.php
simpletest/trunk/remote.php
simpletest/trunk/scorer.php
simpletest/trunk/shell_tester.php
simpletest/trunk/simpletest.php
simpletest/trunk/tag.php
simpletest/trunk/url.php
simpletest/trunk/user_agent.php
simpletest/trunk/web_tester.php
Modified: simpletest/trunk/arguments.php
===================================================================
--- simpletest/trunk/arguments.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/arguments.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -13,7 +13,7 @@
*/
class SimpleArguments {
private $all = array();
-
+
/**
* Parses the command line arguments. The usual formats
* are supported:
@@ -32,7 +32,7 @@
$this->assign($key, $value);
}
}
-
+
/**
* Sets the value in the argments object. If multiple
* values are added under the same key, the key will
@@ -50,7 +50,7 @@
$this->all[$key][] = $value;
}
}
-
+
/**
* Extracts the next key and value from the argument list.
* @param array $arguments The remaining arguments to be parsed.
@@ -71,7 +71,7 @@
return array($matches[1], $this->nextNonFlagElseTrue($arguments));
}
}
-
+
/**
* Attempts to use the next argument as a value. It
* won't use what it thinks is a flag.
@@ -83,7 +83,7 @@
private function nextNonFlagElseTrue(&$arguments) {
return $this->valueIsNext($arguments) ? array_shift($arguments) : true;
}
-
+
/**
* Test to see if the next available argument is a valid value.
* If it starts with "-" or "--" it's a flag and doesn't count.
@@ -94,7 +94,7 @@
function valueIsNext($arguments) {
return isset($arguments[0]) && ! $this->isFlag($arguments[0]);
}
-
+
/**
* It's a flag if it starts with "-" or "--".
* @param string $argument Value to be tested.
@@ -103,7 +103,7 @@
function isFlag($argument) {
return strncmp($argument, '-', 1) == 0;
}
-
+
/**
* The arguments are available as individual member
* variables on the object.
@@ -120,7 +120,7 @@
}
return false;
}
-
+
/**
* The entire argument set as a hash.
* @return hash Each argument and it's value(s).
@@ -139,7 +139,7 @@
private $overview;
private $flag_sets = array();
private $explanations = array();
-
+
/**
* Sets up the top level explanation for the program.
* @param string $overview Summary of program.
@@ -147,7 +147,7 @@
function __construct($overview = '') {
$this->overview = $overview;
}
-
+
/**
* Adds the explanation for a group of flags that all
* have the same function.
@@ -161,7 +161,7 @@
$this->flag_sets[] = $flags;
$this->explanations[] = $explanation;
}
-
+
/**
* Generates the help text.
* @returns string The complete formatted text.
@@ -174,7 +174,7 @@
}
return $this->noDuplicateNewLines($text);
}
-
+
/**
* Works out the longest flag for formatting purposes.
* @param array $flag_sets The internal flag set list.
@@ -188,7 +188,7 @@
}
return $longest;
}
-
+
/**
* Generates the text for a single flag and it's alternate flags.
* @returns string Help text for that flag group.
@@ -201,7 +201,7 @@
}
return $text;
}
-
+
/**
* Generates the flag name including leading dashes.
* @param string $flag Just the name.
@@ -210,7 +210,7 @@
private function renderFlag($flag) {
return (strlen($flag) == 1 ? '-' : '--') . $flag;
}
-
+
/**
* Converts multiple new lines into a single new line.
* Just there to trap accidental duplicate new lines.
Modified: simpletest/trunk/authentication.php
===================================================================
--- simpletest/trunk/authentication.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/authentication.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -20,7 +20,7 @@
private $root;
private $username;
private $password;
-
+
/**
* Starts with the initial entry directory.
* @param string $type Authentication type for this
@@ -35,7 +35,7 @@
$this->username = false;
$this->password = false;
}
-
+
/**
* Adds another location to the realm.
* @param SimpleUrl $url Somewhere in realm.
@@ -44,7 +44,7 @@
function stretch($url) {
$this->root = $this->getCommonPath($this->root, $url->getPath());
}
-
+
/**
* Finds the common starting path.
* @param string $first Path to compare.
@@ -62,7 +62,7 @@
}
return implode('/', $first) . '/';
}
-
+
/**
* Sets the identity to try within this realm.
* @param string $username Username in authentication dialog.
@@ -73,7 +73,7 @@
$this->username = $username;
$this->password = $password;
}
-
+
/**
* Accessor for current identity.
* @return string Last succesful username.
@@ -82,7 +82,7 @@
function getUsername() {
return $this->username;
}
-
+
/**
* Accessor for current identity.
* @return string Last succesful password.
@@ -91,7 +91,7 @@
function getPassword() {
return $this->password;
}
-
+
/**
* Test to see if the URL is within the directory
* tree of the realm.
@@ -108,7 +108,7 @@
}
return false;
}
-
+
/**
* Tests to see if one string is a substring of
* another.
@@ -130,7 +130,7 @@
*/
class SimpleAuthenticator {
private $realms;
-
+
/**
* Clears the realms.
* @access public
@@ -138,7 +138,7 @@
function SimpleAuthenticator() {
$this->restartSession();
}
-
+
/**
* Starts with no realms set up.
* @access public
@@ -146,7 +146,7 @@
function restartSession() {
$this->realms = array();
}
-
+
/**
* Adds a new realm centered the current URL.
* Browsers privatey wildly on their behaviour in this
@@ -166,7 +166,7 @@
function addRealm($url, $type, $realm) {
$this->realms[$url->getHost()][$realm] = new SimpleRealm($type, $url);
}
-
+
/**
* Sets the current identity to be presented
* against that realm.
@@ -181,7 +181,7 @@
$this->realms[$host][$realm]->setIdentity($username, $password);
}
}
-
+
/**
* Finds the name of the realm by comparing URLs.
* @param SimpleUrl $url URL to test.
@@ -199,7 +199,7 @@
}
return false;
}
-
+
/**
* Presents the appropriate headers for this location.
* @param SimpleHttpRequest $request Request to modify.
@@ -218,7 +218,7 @@
}
$this->addBasicHeaders($request, $username, $password);
}
-
+
/**
* Presents the appropriate headers for this
* location for basic authentication.
Modified: simpletest/trunk/autorun.php
===================================================================
--- simpletest/trunk/autorun.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/autorun.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -26,7 +26,7 @@
return;
}
$result = run_local_tests();
- if (SimpleReporter::inCli()) {
+ if (SimpleReporter::inCli()) {
exit($result ? 0 : 1);
}
}
Modified: simpletest/trunk/collector.php
===================================================================
--- simpletest/trunk/collector.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/collector.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -71,7 +71,7 @@
}
$test->addFile($file);
}
-
+
/**
* Tests for hidden files so as to skip them. Currently
* only tests for Unix hidden files.
Modified: simpletest/trunk/cookies.php
===================================================================
--- simpletest/trunk/cookies.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/cookies.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -27,7 +27,7 @@
private $path;
private $expiry;
private $is_secure;
-
+
/**
* Constructor. Sets the stored values.
* @param string $name Cookie key.
@@ -49,7 +49,7 @@
}
$this->is_secure = $is_secure;
}
-
+
/**
* Sets the host. The cookie rules determine
* that the first two parts are taken for
@@ -67,7 +67,7 @@
}
return false;
}
-
+
/**
* Accessor for the truncated host to which this
* cookie applies.
@@ -77,7 +77,7 @@
function getHost() {
return $this->host;
}
-
+
/**
* Test for a cookie being valid for a host name.
* @param string $host Host to test against.
@@ -87,7 +87,7 @@
function isValidHost($host) {
return ($this->truncateHost($host) === $this->getHost());
}
-
+
/**
* Extracts just the domain part that determines a
* cookie's host validity.
@@ -104,7 +104,7 @@
}
return false;
}
-
+
/**
* Accessor for name.
* @return string Cookie key.
@@ -113,7 +113,7 @@
function getName() {
return $this->name;
}
-
+
/**
* Accessor for value. A deleted cookie will
* have an empty string for this.
@@ -123,7 +123,7 @@
function getValue() {
return $this->value;
}
-
+
/**
* Accessor for path.
* @return string Valid cookie path.
@@ -132,7 +132,7 @@
function getPath() {
return $this->path;
}
-
+
/**
* Tests a path to see if the cookie applies
* there. The test path must be longer or
@@ -147,7 +147,7 @@
$this->getPath(),
strlen($this->getPath())) == 0);
}
-
+
/**
* Accessor for expiry.
* @return string Expiry string.
@@ -159,7 +159,7 @@
}
return gmdate("D, d M Y H:i:s", $this->expiry) . " GMT";
}
-
+
/**
* Test to see if cookie is expired against
* the cookie format time or timestamp.
@@ -180,7 +180,7 @@
}
return ($this->expiry < $now);
}
-
+
/**
* Ages the cookie by the specified number of
* seconds.
@@ -192,7 +192,7 @@
$this->expiry -= $interval;
}
}
-
+
/**
* Accessor for the secure flag.
* @return boolean True if cookie needs SSL.
@@ -201,7 +201,7 @@
function isSecure() {
return $this->is_secure;
}
-
+
/**
* Adds a trailing and leading slash to the path
* if missing.
@@ -227,7 +227,7 @@
*/
class SimpleCookieJar {
private $cookies;
-
+
/**
* Constructor. Jar starts empty.
* @access public
@@ -235,7 +235,7 @@
function __construct() {
$this->cookies = array();
}
-
+
/**
* Removes expired and temporary cookies as if
* the browser was closed and re-opened.
@@ -258,7 +258,7 @@
}
$this->cookies = $surviving_cookies;
}
-
+
/**
* Ages all cookies in the cookie jar.
* @param integer $interval The old session is moved
@@ -272,7 +272,7 @@
$this->cookies[$i]->agePrematurely($interval);
}
}
-
+
/**
* Sets an additional cookie. If a cookie has
* the same name and path it is replaced.
@@ -290,7 +290,7 @@
}
$this->cookies[$this->findFirstMatch($cookie)] = $cookie;
}
-
+
/**
* Finds a matching cookie to write over or the
* first empty slot if none.
@@ -311,7 +311,7 @@
}
return count($this->cookies);
}
-
+
/**
* Reads the most specific cookie value from the
* browser cookies. Looks for the longest path that
@@ -335,7 +335,7 @@
}
return (isset($value) ? $value : false);
}
-
+
/**
* Tests cookie for matching against search
* criteria.
@@ -359,7 +359,7 @@
}
return true;
}
-
+
/**
* Uses a URL to sift relevant cookies by host and
* path. Results are list of strings of form "name=value".
Modified: simpletest/trunk/default_reporter.php
===================================================================
--- simpletest/trunk/default_reporter.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/default_reporter.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -59,7 +59,7 @@
}
}
}
-
+
/**
* Run only this test.
* @return string Test name to run.
@@ -67,7 +67,7 @@
function getTest() {
return $this->test;
}
-
+
/**
* Run only this test suite.
* @return string Test class name to run.
@@ -75,7 +75,7 @@
function getTestCase() {
return $this->case;
}
-
+
/**
* Output should be XML or not.
* @return boolean True if XML desired.
@@ -83,7 +83,7 @@
function isXml() {
return $this->xml;
}
-
+
/**
* Output should suppress skip messages.
* @return boolean True for no skips.
@@ -91,7 +91,7 @@
function noSkips() {
return $this->no_skips;
}
-
+
/**
* Output should be a help message. Disabled during XML mode.
* @return boolean True if help message desired.
@@ -99,7 +99,7 @@
function help() {
return $this->help && ! $this->xml;
}
-
+
/**
* Returns plain-text help message for command line runner.
* @return string String help message
@@ -117,7 +117,7 @@
HELP;
}
-
+
}
/**
@@ -128,7 +128,7 @@
* @subpackage UnitTester
*/
class DefaultReporter extends SimpleReporterDecorator {
-
+
/**
* Assembles the appropriate reporter for the environment.
*/
Modified: simpletest/trunk/eclipse.php
===================================================================
--- simpletest/trunk/eclipse.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/eclipse.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -1,6 +1,6 @@
<?php
/**
- * base include file for eclipse plugin
+ * base include file for eclipse plugin
* @package SimpleTest
* @subpackage Eclipse
* @version $Id$
@@ -16,12 +16,12 @@
/**#@-*/
/**
- * base reported class for eclipse plugin
+ * base reported class for eclipse plugin
* @package SimpleTest
* @subpackage Eclipse
*/
class EclipseReporter extends SimpleScorer {
-
+
/**
* Reporter to be run inside of Eclipse interface.
* @param object $listener Eclipse listener (?).
@@ -37,7 +37,7 @@
$this->error = false;
$this->fail = false;
}
-
+
/**
* Means to display human readable object comparisons.
* @return SimpleDumper Visual comparer.
@@ -45,7 +45,7 @@
function getDumper() {
return new SimpleDumper();
}
-
+
/**
* Localhost connection from Eclipse.
* @param integer $port Port to connect to Eclipse.
@@ -56,7 +56,7 @@
$tmplistener = &new SimpleSocket($host, $port, 5);
return $tmplistener;
}
-
+
/**
* Wraps the test in an output buffer.
* @param SimpleInvoker $invoker Current test runner.
@@ -67,7 +67,7 @@
$eclinvoker = &new EclipseInvoker($invoker, $this->listener);
return $eclinvoker;
}
-
+
/**
* C style escaping.
* @param string $raw String with backslashes, quotes and whitespace.
@@ -78,7 +78,7 @@
$replace = array('\\\\','\"','\/','\b','\f','\n','\r','\t');
return str_replace($needle, $replace, $raw);
}
-
+
/**
* Stash the first passing item. Clicking the test
* item goes to first pass.
@@ -91,7 +91,7 @@
}
$this->pass = true;
}
-
+
/**
* Stash the first failing item. Clicking the test
* item goes to first fail.
@@ -106,7 +106,7 @@
$this->listener->write('{status:"fail",message:"'.$this->message.'",group:"'.$this->group.'",case:"'.$this->case.'",method:"'.$this->method.'"}');
}
}
-
+
/**
* Stash the first error. Clicking the test
* item goes to first error.
@@ -120,8 +120,8 @@
$this->listener->write('{status:"error",message:"'.$this->message.'",group:"'.$this->group.'",case:"'.$this->case.'",method:"'.$this->method.'"}');
}
}
-
-
+
+
/**
* Stash the first exception. Clicking the test
* item goes to first message.
@@ -141,8 +141,8 @@
. '"}');
}
}
-
+
/**
* We don't display any special header.
* @param string $test_name First test top level
@@ -159,7 +159,7 @@
*/
function paintFooter($test_name) {
}
-
+
/**
* Paints nothing at the start of a test method, but stash
* the method name for later.
@@ -172,14 +172,14 @@
$this->error = false;
$this->method = $this->escapeVal($method);
}
-
+
/**
* Only send one message if the test passes, after that
* suppress the message.
* @param string $test_name Name of test that is ending.
* @access public
*/
- function paintMethodEnd($method){
+ function paintMethodEnd($method){
if ($this->fail || $this->error || ! $this->pass){
} else {
$this->listener->write(
@@ -188,7 +188,7 @@
$this->method . '"}');
}
}
-
+
/**
* Stashes the test case name for the later failure message.
* @param string $test_name Name of test or other label.
@@ -197,7 +197,7 @@
function paintCaseStart($case){
$this->case = $this->escapeVal($case);
}
-
+
/**
* Drops the name.
* @param string $test_name Name of test or other label.
@@ -206,7 +206,7 @@
function paintCaseEnd($case){
$this->case = "";
}
-
+
/**
* Stashes the name of the test suite. Starts test coverage
* if enabled.
@@ -218,7 +218,7 @@
$this->group = $this->escapeVal($group);
if ($this->cc){
if (extension_loaded('xdebug')){
- xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE);
+ xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE);
}
}
}
@@ -268,7 +268,7 @@
/**
* Invoker decorator for Eclipse. Captures output until
- * the end of the test.
+ * the end of the test.
* @package SimpleTest
* @subpackage Eclipse
*/
@@ -277,7 +277,7 @@
$this->listener = &$listener;
$this->SimpleInvokerDecorator($invoker);
}
-
+
/**
* Starts output buffering.
* @param string $method Test method to call.
Modified: simpletest/trunk/encoding.php
===================================================================
--- simpletest/trunk/encoding.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/encoding.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -5,7 +5,7 @@
* @subpackage WebTester
* @version $Id$
*/
-
+
/**#@+
* include other SimpleTest class files
*/
@@ -20,7 +20,7 @@
class SimpleEncodedPair {
private $key;
private $value;
-
+
/**
* Stashes the data for rendering later.
* @param string $key Form element name.
@@ -30,7 +30,7 @@
$this->key = $key;
$this->value = $value;
}
-
+
/**
* The pair as a single string.
* @return string Encoded pair.
@@ -39,7 +39,7 @@
function asRequest() {
return urlencode($this->key) . '=' . urlencode($this->value);
}
-
+
/**
* The MIME part as a string.
* @return string MIME part encoding.
@@ -51,7 +51,7 @@
$part .= "\r\n" . $this->value;
return $part;
}
-
+
/**
* Is this the value we are looking for?
* @param string $key Identifier.
@@ -61,7 +61,7 @@
function isKey($key) {
return $key == $this->key;
}
-
+
/**
* Is this the value we are looking for?
* @return string Identifier.
@@ -70,7 +70,7 @@
function getKey() {
return $this->key;
}
-
+
/**
* Is this the value we are looking for?
* @return string Content.
@@ -90,7 +90,7 @@
private $key;
private $content;
private $filename;
-
+
/**
* Stashes the data for rendering later.
* @param string $key Key to add value to.
@@ -102,7 +102,7 @@
$this->content = $content;
$this->filename = $filename;
}
-
+
/**
* The pair as a single string.
* @return string Encoded pair.
@@ -111,7 +111,7 @@
function asRequest() {
return '';
}
-
+
/**
* The MIME part as a string.
* @return string MIME part encoding.
@@ -125,7 +125,7 @@
$part .= "\r\n\r\n" . $this->content;
return $part;
}
-
+
/**
* Attempts to figure out the MIME type from the
* file extension and the content.
@@ -138,7 +138,7 @@
}
return 'application/octet-stream';
}
-
+
/**
* Tests each character is in the range 0-127.
* @param string $ascii String to test.
@@ -152,7 +152,7 @@
}
return true;
}
-
+
/**
* Is this the value we are looking for?
* @param string $key Identifier.
@@ -162,7 +162,7 @@
function isKey($key) {
return $key == $this->key;
}
-
+
/**
* Is this the value we are looking for?
* @return string Identifier.
@@ -171,7 +171,7 @@
function getKey() {
return $this->key;
}
-
+
/**
* Is this the value we are looking for?
* @return string Content.
@@ -190,7 +190,7 @@
*/
class SimpleEncoding {
private $request;
-
+
/**
* Starts empty.
* @param array $query Hash of parameters.
@@ -205,7 +205,7 @@
$this->clear();
$this->merge($query);
}
-
+
/**
* Empties the request of parameters.
* @access public
@@ -213,7 +213,7 @@
function clear() {
$this->request = array();
}
-
+
/**
* Adds a parameter to the query.
* @param string $key Key to add value to.
@@ -232,7 +232,7 @@
$this->addPair($key, $value);
}
}
-
+
/**
* Adds a new value into the request.
* @param string $key Key to add value to.
@@ -242,7 +242,7 @@
protected function addPair($key, $value) {
$this->request[] = new SimpleEncodedPair($key, $value);
}
-
+
/**
* Adds a MIME part to the query. Does nothing for a
* form encoded packet.
@@ -254,7 +254,7 @@
function attach($key, $content, $filename) {
$this->request[] = new SimpleAttachment($key, $content, $filename);
}
-
+
/**
* Adds a set of parameters to this query.
* @param array/SimpleQueryString $query Multiple values are
@@ -270,7 +270,7 @@
}
}
}
-
+
/**
* Accessor for single value.
* @return string/array False if missing, string
@@ -293,7 +293,7 @@
return $values;
}
}
-
+
/**
* Accessor for listing of pairs.
* @return array All pair objects.
@@ -302,7 +302,7 @@
function getAll() {
return $this->request;
}
-
+
/**
* Renders the query string as a URL encoded
* request part.
@@ -327,7 +327,7 @@
* @subpackage WebTester
*/
class SimpleGetEncoding extends SimpleEncoding {
-
+
/**
* Starts empty.
* @param array $query Hash of parameters.
@@ -338,7 +338,7 @@
function __construct($query = false) {
parent::__construct($query);
}
-
+
/**
* HTTP request method.
* @return string Always GET.
@@ -347,7 +347,7 @@
function getMethod() {
return 'GET';
}
-
+
/**
* Writes no extra headers.
* @param SimpleSocket $socket Socket to write to.
@@ -355,7 +355,7 @@
*/
function writeHeadersTo(&$socket) {
}
-
+
/**
* No data is sent to the socket as the data is encoded into
* the URL.
@@ -364,7 +364,7 @@
*/
function writeTo(&$socket) {
}
-
+
/**
* Renders the query string as a URL encoded
* request part for attaching to a URL.
@@ -382,7 +382,7 @@
* @subpackage WebTester
*/
class SimpleHeadEncoding extends SimpleGetEncoding {
-
+
/**
* Starts empty.
* @param array $query Hash of parameters.
@@ -393,7 +393,7 @@
function __construct($query = false) {
parent::__construct($query);
}
-
+
/**
* HTTP request method.
* @return string Always HEAD.
@@ -410,7 +410,7 @@
* @subpackage WebTester
*/
class SimpleDeleteEncoding extends SimpleGetEncoding {
-
+
/**
* Starts empty.
* @param array $query Hash of parameters.
@@ -421,7 +421,7 @@
function __construct($query = false) {
parent::__construct($query);
}
-
+
/**
* HTTP request method.
* @return string Always DELETE.
@@ -433,7 +433,7 @@
}
/**
- * Bundles an entity-body for transporting
+ * Bundles an entity-body for transporting
* a raw content payload with the request.
* @package SimpleTest
* @subpackage WebTester
@@ -441,7 +441,7 @@
class SimpleEntityEncoding extends SimpleEncoding {
private $content_type;
private $body;
-
+
function __construct($query = false, $content_type = false) {
$this->content_type = $content_type;
if (is_string($query)) {
@@ -451,7 +451,7 @@
parent::__construct($query);
}
}
-
+
/**
* Returns the media type of the entity body
* @return string
@@ -463,7 +463,7 @@
}
return $this->content_type;
}
-
+
/**
* Dispatches the form headers down the socket.
* @param SimpleSocket $socket Socket to write to.
@@ -473,7 +473,7 @@
$socket->write("Content-Length: " . (integer)strlen($this->encode()) . "\r\n");
$socket->write("Content-Type: " . $this->getContentType() . "\r\n");
}
-
+
/**
* Dispatches the form data down the socket.
* @param SimpleSocket $socket Socket to write to.
@@ -482,7 +482,7 @@
function writeTo(&$socket) {
$socket->write($this->encode());
}
-
+
/**
* Renders the request body
* @return Encoded entity body
@@ -500,7 +500,7 @@
* @subpackage WebTester
*/
class SimplePostEncoding extends SimpleEntityEncoding {
-
+
/**
* Starts empty.
* @param array $query Hash of parameters.
@@ -514,7 +514,7 @@
}
parent::__construct($query, $content_type);
}
-
+
function hasMoreThanOneLevel($query) {
foreach ($query as $key => $value) {
if (is_array($value)) {
@@ -538,10 +538,10 @@
if ($this->hasMoreThanOneLevel($query_)) {
$query_ = $this->rewriteArrayWithMultipleLevels($query_);
}
-
+
return $query_;
}
-
+
/**
* HTTP request method.
* @return string Always POST.
@@ -550,7 +550,7 @@
function getMethod() {
return 'POST';
}
-
+
/**
* Renders the query string as a URL encoded
* request part for attaching to a URL.
@@ -568,7 +568,7 @@
* @subpackage WebTester
*/
class SimplePutEncoding extends SimpleEntityEncoding {
-
+
/**
* Starts empty.
* @param array $query Hash of parameters.
@@ -579,7 +579,7 @@
function __construct($query = false, $content_type = false) {
parent::__construct($query, $content_type);
}
-
+
/**
* HTTP request method.
* @return string Always PUT.
@@ -598,7 +598,7 @@
*/
class SimpleMultipartEncoding extends SimplePostEncoding {
private $boundary;
-
+
/**
* Starts empty.
* @param array $query Hash of parameters.
@@ -610,7 +610,7 @@
parent::__construct($query);
$this->boundary = ($boundary === false ? uniqid('st') : $boundary);
}
-
+
/**
* Dispatches the form headers down the socket.
* @param SimpleSocket $socket Socket to write to.
@@ -620,7 +620,7 @@
$socket->write("Content-Length: " . (integer)strlen($this->encode()) . "\r\n");
$socket->write("Content-Type: multipart/form-data; boundary=" . $this->boundary . "\r\n");
}
-
+
/**
* Dispatches the form data down the socket.
* @param SimpleSocket $socket Socket to write to.
@@ -629,7 +629,7 @@
function writeTo(&$socket) {
$socket->write($this->encode());
}
-
+
/**
* Renders the query string as a URL encoded
* request part.
Modified: simpletest/trunk/errors.php
===================================================================
--- simpletest/trunk/errors.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/errors.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -43,7 +43,7 @@
restore_error_handler();
$queue->tally();
}
-
+
/**
* Wires up the error queue for a single test.
* @return SimpleErrorQueue Queue connected to the test.
@@ -120,7 +120,7 @@
$content = str_replace('%', '%%', $content);
$this->testLatestError($severity, $content, $filename, $line);
}
-
+
/**
* Any errors still in the queue are sent to the test
* case. Any unfulfilled expectations trigger failures.
Modified: simpletest/trunk/http.php
===================================================================
--- simpletest/trunk/http.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/http.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -22,7 +22,7 @@
*/
class SimpleRoute {
private $url;
-
+
/**
* Sets the target URL.
* @param SimpleUrl $url URL as object.
@@ -31,7 +31,7 @@
function __construct($url) {
$this->url = $url;
}
-
+
/**
* Resource name.
* @return SimpleUrl Current url.
@@ -40,7 +40,7 @@
function getUrl() {
return $this->url;
}
-
+
/**
* Creates the first line which is the actual request.
* @param string $method HTTP request method, usually GET.
@@ -51,7 +51,7 @@
return $method . ' ' . $this->url->getPath() .
$this->url->getEncodedRequest() . ' HTTP/1.0';
}
-
+
/**
* Creates the host part of the request.
* @return string Host line content.
@@ -64,7 +64,7 @@
}
return $line;
}
-
+
/**
* Opens a socket to the route.
* @param string $method HTTP request method, usually GET.
@@ -86,7 +86,7 @@
}
return $socket;
}
-
+
/**
* Factory for socket.
* @param string $scheme Protocol to use.
@@ -117,7 +117,7 @@
private $proxy;
private $username;
private $password;
-
+
/**
* Stashes the proxy address.
* @param SimpleUrl $url URL as object.
@@ -132,7 +132,7 @@
$this->username = $username;
$this->password = $password;
}
-
+
/**
* Creates the first line which is the actual request.
* @param string $method HTTP request method, usually GET.
@@ -147,7 +147,7 @@
return $method . ' ' . $scheme . '://' . $url->getHost() . $port .
$url->getPath() . $url->getEncodedRequest() . ' HTTP/1.0';
}
-
+
/**
* Creates the host part of the request.
* @param SimpleUrl $url URL as object.
@@ -159,7 +159,7 @@
$port = $this->proxy->getPort() ? $this->proxy->getPort() : 8080;
return "$host:$port";
}
-
+
/**
* Opens a socket to the route.
* @param string $method HTTP request method, usually GET.
@@ -199,7 +199,7 @@
private $encoding;
private $headers;
private $cookies;
-
+
/**
* Builds the socket request from the different pieces.
* These include proxy information, URL, cookies, headers,
@@ -215,7 +215,7 @@
$this->headers = array();
$this->cookies = array();
}
-
+
/**
* Dispatches the content to the route's socket.
* @param integer $timeout Connection timeout.
@@ -231,7 +231,7 @@
}
return $this->createResponse($socket);
}
-
+
/**
* Sends the headers.
* @param SimpleSocket $socket Open socket.
@@ -251,7 +251,7 @@
$socket->write("\r\n");
$encoding->writeTo($socket);
}
-
+
/**
* Adds a header line to the request.
* @param string $header_line Text of full header line.
@@ -260,7 +260,7 @@
function addHeaderLine($header_line) {
$this->headers[] = $header_line;
}
-
+
/**
* Reads all the relevant cookies from the
* cookie jar.
@@ -271,7 +271,7 @@
function readCookiesFromJar($jar, $url) {
$this->cookies = $jar->selectAsPairs($url);
}
-
+
/**
* Wraps the socket in a response parser.
* @param SimpleSocket $socket Responding socket.
@@ -302,7 +302,7 @@
private $cookies;
private $authentication;
private $realm;
-
+
/**
* Parses the incoming header block.
* @param string $headers Header block.
@@ -321,7 +321,7 @@
$this->parseHeaderLine($header_line);
}
}
-
+
/**
* Accessor for parsed HTTP protocol version.
* @return integer HTTP error code.
@@ -330,7 +330,7 @@
function getHttpVersion() {
return $this->http_version;
}
-
+
/**
* Accessor for raw header block.
* @return string All headers as raw string.
@@ -339,7 +339,7 @@
function getRaw() {
return $this->raw_headers;
}
-
+
/**
* Accessor for parsed HTTP error code.
* @return integer HTTP error code.
@@ -348,7 +348,7 @@
function getResponseCode() {
return (integer)$this->response_code;
}
-
+
/**
* Returns the redirected URL or false if
* no redirection.
@@ -358,7 +358,7 @@
function getLocation() {
return $this->location;
}
-
+
/**
* Test to see if the response is a valid redirect.
* @return boolean True if valid redirect.
@@ -368,7 +368,7 @@
return in_array($this->response_code, array(301, 302, 303, 307)) &&
(boolean)$this->getLocation();
}
-
+
/**
* Test to see if the response is an authentication
* challenge.
@@ -380,7 +380,7 @@
(boolean)$this->authentication &&
(boolean)$this->realm;
}
-
+
/**
* Accessor for MIME type header information.
* @return string MIME type.
@@ -389,7 +389,7 @@
function getMimeType() {
return $this->mime_type;
}
-
+
/**
* Accessor for authentication type.
* @return string Type.
@@ -398,7 +398,7 @@
function getAuthentication() {
return $this->authentication;
}
-
+
/**
* Accessor for security realm.
* @return string Realm.
@@ -407,7 +407,7 @@
function getRealm() {
return $this->realm;
}
-
+
/**
* Writes new cookies to the cookie jar.
* @param SimpleCookieJar $jar Jar to write to.
@@ -450,7 +450,7 @@
$this->realm = trim($matches[2]);
}
}
-
+
/**
* Parse the Set-cookie content.
* @param string $cookie_line Text after "Set-cookie:"
@@ -485,7 +485,7 @@
private $sent;
private $content;
private $headers;
-
+
/**
* Constructor. Reads and parses the incoming
* content and headers.
@@ -508,7 +508,7 @@
}
$this->parse($raw);
}
-
+
/**
* Splits up the headers and the rest of the content.
* @param string $raw Content to parse.
@@ -529,7 +529,7 @@
$this->headers = new SimpleHttpHeaders($headers);
}
}
-
+
/**
* Original request method.
* @return string GET, POST or HEAD.
@@ -538,7 +538,7 @@
function getMethod() {
return $this->encoding->getMethod();
}
-
+
/**
* Resource name.
* @return SimpleUrl Current url.
@@ -547,7 +547,7 @@
function getUrl() {
return $this->url;
}
-
+
/**
* Original request data.
* @return mixed Sent content.
@@ -556,7 +556,7 @@
function getRequestData() {
return $this->encoding;
}
-
+
/**
* Raw request that was sent down the wire.
* @return string Bytes actually sent.
@@ -565,7 +565,7 @@
function getSent() {
return $this->sent;
}
-
+
/**
* Accessor for the content after the last
* header line.
@@ -575,7 +575,7 @@
function getContent() {
return $this->content;
}
-
+
/**
* Accessor for header block. The response is the
* combination of this and the content.
@@ -585,7 +585,7 @@
function getHeaders() {
return $this->headers;
}
-
+
/**
* Accessor for any new cookies.
* @return array List of new cookies.
@@ -594,7 +594,7 @@
function getNewCookies() {
return $this->headers->getNewCookies();
}
-
+
/**
* Reads the whole of the socket output into a
* single string.
@@ -610,7 +610,7 @@
}
return $all;
}
-
+
/**
* Test to see if the packet from the socket is the
* last one.
@@ -625,4 +625,4 @@
return ! $packet;
}
}
-?>
+?>
\ No newline at end of file
Modified: simpletest/trunk/recorder.php
===================================================================
--- simpletest/trunk/recorder.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/recorder.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -23,7 +23,7 @@
public $time;
public $breadcrumb;
public $message;
-
+
/**
* Records the test result as public members.
* @param array $breadcrumb Test stack at the time of the event.
@@ -36,20 +36,20 @@
}
/**
- * A single pass captured for later.
+ * A single pass captured for later.
* @package SimpleTest
* @subpackage Extensions
*/
class SimpleResultOfPass extends SimpleResult { }
-/**
+/**
* A single failure captured for later.
* @package SimpleTest
* @subpackage Extensions
*/
class SimpleResultOfFail extends SimpleResult { }
-/**
+/**
* A single exception captured for later.
* @package SimpleTest
* @subpackage Extensions
@@ -64,7 +64,7 @@
*/
class Recorder extends SimpleReporterDecorator {
public $results = array();
-
+
/**
* Stashes the pass as a SimpleResultOfPass
* for later retrieval.
@@ -75,7 +75,7 @@
parent::paintPass($message);
$this->results[] = new SimpleResultOfPass(parent::getTestList(), $message);
}
-
+
/**
* Stashes the fail as a SimpleResultOfFail
* for later retrieval.
@@ -86,7 +86,7 @@
parent::paintFail($message);
$this->results[] = new SimpleResultOfFail(parent::getTestList(), $message);
}
-
+
/**
* Stashes the exception as a SimpleResultOfException
* for later retrieval.
@@ -98,4 +98,4 @@
$this->results[] = new SimpleResultOfException(parent::getTestList(), $message);
}
}
-?>
+?>
\ No newline at end of file
Modified: simpletest/trunk/reflection_php4.php
===================================================================
--- simpletest/trunk/reflection_php4.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/reflection_php4.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -112,7 +112,7 @@
function isInterface() {
return false;
}
-
+
/**
* Scans for final methods, but as it's PHP 4 there
* aren't any.
Modified: simpletest/trunk/reflection_php5.php
===================================================================
--- simpletest/trunk/reflection_php5.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/reflection_php5.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -294,7 +294,7 @@
if ($name == '__toString') {
return "function $name()";
}
-
+
// This wonky try-catch is a work around for a faulty method_exists()
// in early versions of PHP 5 which would return false for static
// methods. The Reflection classes work fine, but hasMethod()
Modified: simpletest/trunk/remote.php
===================================================================
--- simpletest/trunk/remote.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/remote.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -23,7 +23,7 @@
private $url;
private $dry_url;
private $size;
-
+
/**
* Sets the location of the remote test.
* @param string $url Test location.
@@ -35,7 +35,7 @@
$this->dry_url = $dry_url ? $dry_url : $url;
$this->size = false;
}
-
+
/**
* Accessor for the test name for subclasses.
* @return string Name of the test.
@@ -67,7 +67,7 @@
}
return true;
}
-
+
/**
* Creates a new web browser object for fetching
* the XML report.
@@ -77,7 +77,7 @@
protected function createBrowser() {
return new SimpleBrowser();
}
-
+
/**
* Creates the XML parser.
* @param SimpleReporter $reporter Target of test results.
@@ -87,7 +87,7 @@
protected function createParser($reporter) {
return new SimpleTestXmlParser($reporter);
}
-
+
/**
* Accessor for the number of subtests.
* @return integer Number of test cases.
Modified: simpletest/trunk/scorer.php
===================================================================
--- simpletest/trunk/scorer.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/scorer.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -166,7 +166,7 @@
function paintException($exception) {
$this->exceptions++;
}
-
+
/**
* Prints the message for skipping tests.
* @param string $message Text of skip condition.
@@ -253,7 +253,7 @@
$this->size = null;
$this->progress = 0;
}
-
+
/**
* Gets the formatter for small generic data items.
* @return SimpleDumper Formatter.
@@ -481,7 +481,7 @@
function createInvoker($invoker) {
return $this->reporter->createInvoker($invoker);
}
-
+
/**
* Gets the formatter for privateiables and other small
* generic data items.
@@ -583,7 +583,7 @@
function paintException($exception) {
$this->reporter->paintException($exception);
}
-
+
/**
* Prints the message for skipping tests.
* @param string $message Text of skip condition.
@@ -701,7 +701,7 @@
}
return $invoker;
}
-
+
/**
* Gets the formatter for privateiables and other small
* generic data items.
@@ -812,7 +812,7 @@
$this->reporters[$i]->paintError($message);
}
}
-
+
/**
* Chains to the wrapped reporter.
* @param Exception $exception Exception to display.
Modified: simpletest/trunk/shell_tester.php
===================================================================
--- simpletest/trunk/shell_tester.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/shell_tester.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -154,7 +154,7 @@
function assertFalse($result, $message = '%s') {
return $this->assert(new FalseExpectation(), $result, $message);
}
-
+
/**
* Will trigger a pass if the two parameters have
* the same value only. Otherwise a fail. This
@@ -171,7 +171,7 @@
$second,
$message);
}
-
+
/**
* Will trigger a pass if the two parameters have
* a different value. Otherwise a fail. This
Modified: simpletest/trunk/simpletest.php
===================================================================
--- simpletest/trunk/simpletest.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/simpletest.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -219,7 +219,7 @@
'DefaultProxyPassword' => false,
'Preferred' => array(new HtmlReporter(), new TextReporter(), new XmlReporter()));
}
-
+
/**
* @deprecated
*/
Modified: simpletest/trunk/tag.php
===================================================================
--- simpletest/trunk/tag.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/tag.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -182,7 +182,7 @@
$this->addTag($tag);
}
}
-
+
/**
* Accessor for tag name.
* @return string Name of tag.
Modified: simpletest/trunk/url.php
===================================================================
--- simpletest/trunk/url.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/url.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -35,7 +35,7 @@
private $y;
private $target;
private $raw = false;
-
+
/**
* Constructor. Parses URL into sections.
* @param string $url Incoming URL.
@@ -71,7 +71,7 @@
$this->fragment = (strncmp($url, "#", 1) == 0 ? substr($url, 1) : false);
$this->target = false;
}
-
+
/**
* Extracts the X, Y coordinate pair from an image map.
* @param string $url URL so far. The coordinates will be
@@ -86,7 +86,7 @@
}
return array(false, false);
}
-
+
/**
* Extracts the scheme part of an incoming URL.
* @param string $url URL so far. The scheme will be
@@ -101,7 +101,7 @@
}
return false;
}
-
+
/**
* Extracts the username and password from the
* incoming URL. The // prefix will be reattached
@@ -128,7 +128,7 @@
$url = $prefix . $url;
return array(false, false);
}
-
+
/**
* Extracts the host part of an incoming URL.
* Includes the port number part. Will extract
@@ -157,7 +157,7 @@
}
return false;
}
-
+
/**
* Extracts the path information from the incoming
* URL. Strips this path from the URL.
@@ -173,7 +173,7 @@
}
return '';
}
-
+
/**
* Strips off the request data.
* @param string $url URL so far. The request will be
@@ -188,7 +188,7 @@
}
return '';
}
-
+
/**
* Breaks the request down into an object.
* @param string $raw Raw request.
@@ -207,7 +207,7 @@
}
return $request;
}
-
+
/**
* Accessor for protocol part.
* @param string $default Value to use if not present.
@@ -217,7 +217,7 @@
function getScheme($default = false) {
return $this->scheme ? $this->scheme : $default;
}
-
+
/**
* Accessor for user name.
* @return string Username preceding host.
@@ -226,7 +226,7 @@
function getUsername() {
return $this->username;
}
-
+
/**
* Accessor for password.
* @return string Password preceding host.
@@ -235,7 +235,7 @@
function getPassword() {
return $this->password;
}
-
+
/**
* Accessor for hostname and port.
* @param string $default Value to use if not present.
@@ -245,7 +245,7 @@
function getHost($default = false) {
return $this->host ? $this->host : $default;
}
-
+
/**
* Accessor for top level domain.
* @return string Last part of host.
@@ -255,7 +255,7 @@
$path_parts = pathinfo($this->getHost());
return (isset($path_parts['extension']) ? $path_parts['extension'] : false);
}
-
+
/**
* Accessor for port number.
* @return integer TCP/IP port number.
@@ -263,8 +263,8 @@
*/
function getPort() {
return $this->port;
- }
-
+ }
+
/**
* Accessor for path.
* @return string Full path including leading slash if implied.
@@ -276,7 +276,7 @@
}
return $this->path;
}
-
+
/**
* Accessor for page if any. This may be a
* directory name if ambiguious.
@@ -289,7 +289,7 @@
}
return $matches[1];
}
-
+
/**
* Gets the path to the page.
* @return string Path less the page.
@@ -301,7 +301,7 @@
}
return $matches[1];
}
-
+
/**
* Accessor for fragment at end of URL after the "#".
* @return string Part after "#".
@@ -310,7 +310,7 @@
function getFragment() {
return $this->fragment;
}
-
+
/**
* Sets image coordinates. Set to false to clear
* them.
@@ -326,7 +326,7 @@
$this->x = (integer)$x;
$this->y = (integer)$y;
}
-
+
/**
* Accessor for horizontal image coordinate.
* @return integer X value.
@@ -335,7 +335,7 @@
function getX() {
return $this->x;
}
-
+
/**
* Accessor for vertical image coordinate.
* @return integer Y value.
@@ -344,7 +344,7 @@
function getY() {
return $this->y;
}
-
+
/**
* Accessor for current request parameters
* in URL string form. Will return teh original request
@@ -364,7 +364,7 @@
}
return '';
}
-
+
/**
* Adds an additional parameter to the request.
* @param string $key Name of parameter.
@@ -375,7 +375,7 @@
$this->raw = false;
$this->request->add($key, $value);
}
-
+
/**
* Adds additional parameters to the request.
* @param hash/SimpleFormEncoding $parameters Additional
@@ -386,7 +386,7 @@
$this->raw = false;
$this->request->merge($parameters);
}
-
+
/**
* Clears down all parameters.
* @access public
@@ -395,7 +395,7 @@
$this->raw = false;
$this->request = new SimpleGetEncoding();
}
-
+
/**
* Gets the frame target if present. Although
* not strictly part of the URL specification it
@@ -406,7 +406,7 @@
function getTarget() {
return $this->target;
}
-
+
/**
* Attaches a frame target.
* @param string $frame Name of frame.
@@ -416,7 +416,7 @@
$this->raw = false;
$this->target = $frame;
}
-
+
/**
* Renders the URL back into a string.
* @return string URL in canonical form.
@@ -450,7 +450,7 @@
$coords = $this->getX() === false ? '' : '?' . $this->getX() . ',' . $this->getY();
return "$scheme$identity$host$port$path$encoded$fragment$coords";
}
-
+
/**
* Replaces unknown sections to turn a relative
* URL into an absolute one. The base URL can
@@ -482,7 +482,7 @@
$coords = $this->getX() === false ? '' : '?' . $this->getX() . ',' . $this->getY();
return new SimpleUrl("$scheme://$identity$host$port$path$encoded$fragment$coords");
}
-
+
/**
* Replaces unknown sections of the path with base parts
* to return a complete absolute one.
@@ -502,7 +502,7 @@
}
return $base->getPath();
}
-
+
/**
* Simple test to see if a path part is relative.
* @param string $path Path to test.
@@ -512,7 +512,7 @@
protected function isRelativePath($path) {
return (substr($path, 0, 1) != '/');
}
-
+
/**
* Extracts the username and password for use in rendering
* a URL.
@@ -525,7 +525,7 @@
}
return false;
}
-
+
/**
* Replaces . and .. sections of the path.
* @param string $path Unoptimised path.
@@ -536,7 +536,7 @@
$path = preg_replace('|/\./|', '/', $path);
return preg_replace('|/[^/]+/\.\./|', '/', $path);
}
-
+
/**
* A pipe seperated list of all TLDs that result in two part
* domain names.
@@ -547,4 +547,4 @@
return 'com|edu|net|org|gov|mil|int|biz|info|name|pro|aero|coop|museum';
}
}
-?>
+?>
\ No newline at end of file
Modified: simpletest/trunk/user_agent.php
===================================================================
--- simpletest/trunk/user_agent.php 2011-04-28 15:56:11 UTC (rev 2010)
+++ simpletest/trunk/user_agent.php 2011-04-29 08:22:48 UTC (rev 2011)
@@ -38,7 +38,7 @@
private $proxy_password = false;
private $connection_timeout = DEFAULT_CONNECTION_TIMEOUT;
private $additional_headers = array();
-
+
/**
* Starts with no cookies, realms or proxies.
* @access public
@@ -47,7 +47,7 @@
$this->cookie_jar = new SimpleCookieJar();
$this->authenticator = new SimpleAuthenticator();
}
-
+
/**
* Removes expired and temporary cookies as if
* the browser was closed and re-opened. Authorisation
@@ -61,7 +61,7 @@
$this->cookie_jar->restartSession($date);
$this->authenticator->restartSession();
}
-
+
/**
* Adds a header to every fetch.
* @param string $header Header line to add to every
@@ -71,7 +71,7 @@
function addHeader($header) {
$this->additional_headers[] = $header;
}
-
+
/**
* Ages the cookies by the specified time.
* @param integer $interval Amount in seconds.
@@ -80,7 +80,7 @@
function ageCookies($interval) {
$this->cookie_jar->agePrematurely($interval);
}
-
+
/**
* Sets an additional cookie. If a cookie has
* the same name and path it is replaced.
@@ -94,7 +94,7 @@
function setCookie($name, $value, $host = false, $path = '/', $expiry = false) {
$this->cookie_jar->setCookie($name, $value, $host, $path, $expiry);
}
-
+
/**
* Reads the most specific cookie value from the
* browser cookies.
@@ -108,7 +108,7 @@
function getCookieValue($host, $path, $name) {
return $this->cookie_jar->getCookieValue($host, $path, $name);
}
-
+
/**
* Reads the current cookies within the base URL.
* @param string $name Key of cookie to find.
@@ -123,7 +123,7 @@
}
return $this->getCookieValue($base->getHost(), $base->getPath(), $name);
}
-
+
/**
* Switches off cookie sending and recieving.
* @access public
@@ -131,7 +131,7 @@
function ignoreCookies() {
$this->cookies_enabled = false;
}
-
+
/**
* Switches back on the cookie sending and recieving.
* @access public
@@ -139,7 +139,7 @@
function useCookies() {
$this->cookies_enabled = true;
}
-
+
/**
* Sets the socket timeout for opening a connection.
* @param integer $timeout Maximum time in seconds.
@@ -148,7 +148,7 @@
function setConnectionTimeout($timeout) {
$this->connection_timeout = $timeout;
}
-
+
/**
* Sets the maximum number of redirects before
* a page will be loaded anyway.
@@ -158,7 +158,7 @@
function setMaximumRedirects($max) {
$this->max_redirects = $max;
}
-
+
/**
* Sets proxy to use on all requests for when
* testing from behind a firewall. Set URL
@@ -180,7 +180,7 @@
$this->proxy_username = $username;
$this->proxy_password = $password;
}
-
+
/**
* Test to see if the redirect limit is passed.
* @param integer $redirects Count so far.
@@ -190,7 +190,7 @@
protected function isTooManyRedirects($redirects) {
return ($redirects > $this->max_redirects);
}
-
+
/**
* Sets the identity for the current realm.
* @param string $host Host to which realm applies.
@@ -202,7 +202,7 @@
function setIdentity($host, $realm, $username, $password) {
$this->authenticator->setIdentityForRealm($host, $realm, $username, $password);
}
-
+
/**
* Fetches a URL as a response object. Will keep trying if redirected.
* It will also collect authentication realm information.
@@ -227,7 +227,7 @@
}
return $response;
}
-
+
/**
* Fetches the page until no longer redirected or
* until the redirect limit runs out.
@@ -256,7 +256,7 @@
} while (! $this->isTooManyRedirects(++$redirects));
return $response;
}
-
+
/**
* Actually make the web request.
* @param SimpleUrl $url Target to fetch.
@@ -268,7 +268,7 @@
$request = $this->createRequest($url, $encoding);
return $request->fetch($this->connection_timeout);
}
-
+
/**
* Creates a full page request.
* @param SimpleUrl $url Target to fetch as url object.
@@ -285,7 +285,7 @@
$this->authenticator->addHeaders($request, $url);
return $request;
}
-
+
/**
* Builds the appropriate HTTP request object.
* @param SimpleUrl $url Target to fetch as url object.
@@ -296,7 +296,7 @@
protected function createHttpRequest($url, $encoding) {
return new SimpleHttpRequest($this->createRoute($url), $encoding);
}
-
+
...
[truncated message content] |
|
From: SourceForge.net <no...@so...> - 2011-04-28 16:10:18
|
Bugs item #2988566, was opened at 2010-04-16 23:04 Message generated for change (Settings changed) made by pp11 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=2988566&group_id=76550 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Unit test framework Group: None >Status: Closed >Resolution: Out of Date Priority: 5 Private: No Submitted By: jah (jahboite) >Assigned to: Perrick Penet (pp11) Summary: Declaration of ReferenceExpectation::test() Initial Comment: Declaration of ReferenceExpectation::test() should be compatible with that of SimpleExpectation::test() The method signatures of these two should be the same or a Strict level error is generated. Two ways to fix this as I see it: 1) ReferenceExpectation does not extend SimpleExpectation and does not call the SimpleExpectation constructor in order to set $_message. 2) Remove the empty test() method from SimpleExpectation. ---------------------------------------------------------------------- >Comment By: Perrick Penet (pp11) Date: 2011-04-28 18:10 Message: The trouble has already been fixed. Thanks again for reporting this bug. Yours ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=2988566&group_id=76550 |
|
From: SourceForge.net <no...@so...> - 2011-04-28 15:56:33
|
Bugs item #2896575, was opened at 2009-11-12 14:07 Message generated for change (Comment added) made by pp11 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=2896575&group_id=76550 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Web tester Group: None >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: daniel hahler (blueyed) >Assigned to: Perrick Penet (pp11) Summary: WebTestCase::assertTrue: empty $message Initial Comment: $message defaults to false, should be "%s". See the attached patch. I guess https://sourceforge.net/tracker/index.php?func=detail&aid=2896298&group_id=76550&atid=547458 referred to this bug, too - but I cannot reopen/comment there! ---------------------------------------------------------------------- >Comment By: Perrick Penet (pp11) Date: 2011-04-28 17:56 Message: Your patch has been applied. Thanks for the report ! Yours ---------------------------------------------------------------------- Comment By: David Harkness (dharkness) Date: 2009-11-13 00:11 Message: I closed that other bug because I found that UnitTestCase::assertTrue() reports the correct message in the SVN version. That and I submitted the ticket under the Feature Request tracker (oops). If you'd rather I not close bugs that I submit but later determine them to be invalid, I'll leave that to you. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=2896575&group_id=76550 |
|
From: <pp...@us...> - 2011-04-28 15:56:19
|
Revision: 2010
http://simpletest.svn.sourceforge.net/simpletest/?rev=2010&view=rev
Author: pp11
Date: 2011-04-28 15:56:11 +0000 (Thu, 28 Apr 2011)
Log Message:
-----------
Fix for bug n?\194?\176 : 2896575 - WebTestCase::assertTrue: empty $message - patch submitted by daniel hahler (blueyed)
Modified Paths:
--------------
simpletest/trunk/web_tester.php
Modified: simpletest/trunk/web_tester.php
===================================================================
--- simpletest/trunk/web_tester.php 2011-04-28 08:57:25 UTC (rev 2009)
+++ simpletest/trunk/web_tester.php 2011-04-28 15:56:11 UTC (rev 2010)
@@ -1466,7 +1466,7 @@
* @return boolean True on pass
* @access public
*/
- function assertTrue($result, $message = false) {
+ function assertTrue($result, $message = '%s') {
return $this->assert(new TrueExpectation(), $result, $message);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: SourceForge.net <no...@so...> - 2011-04-28 09:00:46
|
Bugs item #2798170, was opened at 2009-05-29 01:26 Message generated for change (Settings changed) made by pp11 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=2798170&group_id=76550 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Unit test framework Group: None >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Nobody/Anonymous (nobody) >Assigned to: Perrick Penet (pp11) Summary: PHP assertIsA using gettype() instead of is_*() Initial Comment: http://php.net warns that gettype has performance problems and recommends to use the is_ functions. That asside, there are more possibilities with is_, e.g. is_float, is_real, is_double (which are hard coded special cases in simpletest) and also is_numeric (helpful when i expect a number, but don't know if it'll be an integer or a double). for consideration (where testing against the type $type): $func='is_'.$type; if(is_callable($func)) return $func($compare); return false; ---------------------------------------------------------------------- >Comment By: Perrick Penet (pp11) Date: 2011-04-28 11:00 Message: The dependency upon gettype() was removed. We're now using is_*() functions. Thanks for the pointer. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=547455&aid=2798170&group_id=76550 |