diff options
| -rw-r--r-- | .gitattributes | 14 | ||||
| -rw-r--r-- | build.xml | 162 | ||||
| -rw-r--r-- | buildscripts/phing/style/coverage-frames.xsl (renamed from etc/style/coverage-frames.xsl) | 0 | ||||
| -rw-r--r-- | buildscripts/phing/style/log.xsl (renamed from etc/style/log.xsl) | 0 | ||||
| -rw-r--r-- | buildscripts/phing/style/phpunit2-frames.xsl (renamed from etc/style/phpunit2-frames.xsl) | 0 | ||||
| -rw-r--r-- | buildscripts/phing/style/phpunit2-noframes.xsl (renamed from etc/style/phpunit2-noframes.xsl) | 0 | ||||
| -rw-r--r-- | buildscripts/phing/style/str.replace.function.xsl (renamed from etc/style/str.replace.function.xsl) | 0 | ||||
| -rw-r--r-- | tests/unit/I18N/core/CultureInfoTest.php | 81 | ||||
| -rw-r--r-- | tests/unit/I18N/core/NumberFormatInfoTest.php | 88 | ||||
| -rw-r--r-- | tests/unit/I18N/core/NumberFormatTest.php (renamed from tests/unit/I18N/TNumberFormatTest.php) | 16 | 
10 files changed, 333 insertions, 28 deletions
diff --git a/.gitattributes b/.gitattributes index 8af5493f..426151cd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -7,6 +7,11 @@ buildscripts/.htaccess -text  buildscripts/jsbuilder/build.php -text  buildscripts/jsbuilder/custom_rhino.jar -text  buildscripts/jsbuilder/packer.js -text +buildscripts/phing/style/coverage-frames.xsl -text +buildscripts/phing/style/log.xsl -text +buildscripts/phing/style/phpunit2-frames.xsl -text +buildscripts/phing/style/phpunit2-noframes.xsl -text +buildscripts/phing/style/str.replace.function.xsl -text  buildscripts/phpbuilder/build.php -text  buildscripts/phpbuilder/files.txt -text  buildscripts/texbuilder/build.php -text @@ -201,11 +206,6 @@ demos/quickstart/themes/Simple/style.css -text  docs/application.xml -text  docs/conceptual-structure.vsd -text  docs/request-sequence.vsd -text -etc/style/coverage-frames.xsl -text -etc/style/log.xsl -text -etc/style/phpunit2-frames.xsl -text -etc/style/phpunit2-noframes.xsl -text -etc/style/str.replace.function.xsl -text  framework/.htaccess -text  framework/3rdParty/SafeHtml/HTMLSax3.php -text  framework/3rdParty/SafeHtml/HTMLSax3/Decorators.php -text @@ -964,6 +964,8 @@ tests/UnitTests/simpletest/web_tester.php -text  tests/UnitTests/simpletest/xml.php -text  tests/unit/Collections/TListTest.php -text  tests/unit/Collections/TMapTest.php -text -tests/unit/I18N/TNumberFormatTest.php -text +tests/unit/I18N/core/CultureInfoTest.php -text +tests/unit/I18N/core/NumberFormatInfoTest.php -text +tests/unit/I18N/core/NumberFormatTest.php -text  tests/unit/TComponentTest.php -text  tests/unit/phpunit2.php -text @@ -7,26 +7,54 @@    Phing > 2.1.1 (currently cvs HEAD needed)    xdebug >= 2.0.0beta4    PhpDocumentor >= 1.3.0RC5 - +  PEAR >= 1.4.4 +  PEAR_PackageFileManager >= 1.6.0a4  -->  <project name="prado" basedir="." default="usage"> -  <property name="version" value="3.0"/> +  <property name="version" value="3.0.0"/> +  <property name="state" value="stable"/>    <property name="pkgname" value="${phing.project.name}-${version}"/> +  <property name="pkgname.pear" value="${pkgname}-pear"/>    <property name="src.dir" value="framework"/> -  <property name="doc.dir" value="docs/api"/> +  <property name="doc.dir" value="docs"/> +  <property name="doc.api.dir" value="${doc.dir}/api"/>    <property name="build.base.dir" value="build"/>    <property name="build.src.dir" value="${build.base.dir}/${pkgname}"/> +  <property name="build.pear.dir" value="${build.base.dir}/${pkgname.pear}"/> +  <property name="dist.base.dir" value="dist"/> +  <property name="dist.zipfile" value="${dist.base.dir}/${pkgname}.zip"/> +  <property name="dist.tarfile" value="${dist.base.dir}/${pkgname}.tar.gz"/> +  <property name="dist.pearfile" value="${dist.base.dir}/${pkgname.pear}.tgz"/>    <property name="tests.dir" value="tests/unit"/>    <property name="reports.dir" value="reports"/>    <property name="reports.unit.dir" value="${reports.dir}/unit"/>    <property name="reports.codecoverage.dir" value="${reports.dir}/codecoverage"/> -  <property name="reports.style.dir" value="etc/style"/> -  <property name="reports.geshi.dir" value="framework/3rdParty/geshi"/> +  <property name="reports.style.dir" value="buildscripts/phing/style"/> +  <property name="reports.geshi.dir" value="${src.dir}/3rdParty/geshi"/> + +  <fileset dir="." id="src"> +    <exclude name="${src.dir}/**/.svn"/> +    <include name="${src.dir}/**/*.php"/> +  </fileset> + +  <fileset dir="." id="misc"> +    <include name="COPYRIGHT"/> +    <include name="HISTORY"/> +    <include name="UPGRADE"/> +    <include name="index.html"/> +    <exclude name="requirements/.svn"/> +    <include name="requirements/*"/> +  </fileset> + +  <fileset dir="." id="docs"> +    <exclude name="${doc.dir}/**/.svn"/> +    <include name="${doc.dir}/**/*"/> +  </fileset> -  <fileset dir="${src.dir}" id="source"> -    <exclude name="**/.svn"/> -    <include name="**/*.php"/> +  <fileset dir="." id="demos"> +    <exclude name="demos/**/.svn"/> +    <include name="demos/**/*"/>    </fileset>    <target name="usage"> @@ -40,10 +68,26 @@      <echo message="clean     --> Clean up the mess"/>    </target> -  <target name="doc"> -    <echo>Generating API documentation</echo> -    <delete dir="${doc.dir}"/> -    <phpdoc title="PRADO ${version} documentation" destdir="${doc.dir}" sourcepath="${src.dir}" output="HTML:Smarty:PHP"/> +  <target name="versioncheck" unless="version"> +    <echo message="====================================================="/> +    <echo message="Version not specified. You must enter a version. In"/> +    <echo message="the future you can add this to build.properties or"/> +    <echo message="enter it on the command line: "/> +    <echo message=" "/> +    <echo message="-Dversion=3.0"/> +    <echo message="====================================================="/>	 +    <input propertyname="version" promptChar=":">PRADO version for package</input> + +    <property name="pkgname" value="${phing.project.name}-${version}" override="true"/> +    <property name="build.src.dir" value="${build.base.dir}/${pkgname}" override="true"/> +    <property name="dist.zipfile" value="${build.base.dir}/${pkgname}.zip" override="true"/> +    <property name="dist.tarfile" value="${build.base.dir}/${pkgname}.tar.gz" override="true"/> +    <property name="dist.pearfile" value="${build.base.dir}/${pkgname}-pear.tgz" override="true"/> +  </target> + +  <target name="doc" description="Generating API documentation"> +    <delete dir="${doc.api.dir}"/> +    <phpdoc title="PRADO ${version} API Documentation" destdir="${doc.api.dir}" sourcepath="${src.dir}" output="HTML:Smarty:PHP"/>    </target>    <target name="test"> @@ -92,17 +136,99 @@      </coverage-report>    </target> -  <target name="dist"> -    <echo>TBD</echo> +  <target name="build" depends="versioncheck,doc" description="Creating the main PRADO build"> +    <echo>Cleaning up after last build</echo> +    <delete dir="${build.base.dir}"/> +    <echo>Creating directory layout...</echo> +    <copy todir="${build.src.dir}"> +      <fileset refid="src"/> +      <fileset refid="docs"/> +      <fileset refid="misc"/> +      <fileset refid="demos"/> +    </copy>    </target> +  <target name="dist" depends="build" description="Creating the main PRADO distributions"> +    <delete dir="${dist.base.dir}"/> +    <mkdir dir="${dist.base.dir}"/> +    <tar compression="gzip" destFile="${dist.tarfile}" basedir="${build.base.dir}" /> +    <zip destfile="${dist.zipfile}" basedir="${build.base.dir}"/> +  </target> + +  <target name="build-pear" depends="versioncheck"> +    <echo>Creating directory layout...</echo> +    <delete dir="${build.base.dir}"/> +    <copy todir="${build.pear.dir}"> +      <fileset refid="src"/> +    </copy> +  </target> + +  <target name="dist-pear" depends="build-pear"> +    <echo>Creating PEAR package.xml...</echo> +    <pearpkg name="${phing.project.name}" dir="${build.pear.dir}" destFile="${build.pear.dir}/package.xml"> +      <fileset refid="src"/> +      <fileset refid="docs"/> + +      <option name="notes">Release notes</option> + +      <!-- Set the simple options --> +      <option name="summary">PRADO is a component-based and event-driven framework for rapid Web programming in PHP 5.</option> +      <option name="description">test</option> +      <option name="version" value="${version}"/> +      <option name="extends" value="prado"/> +      <option name="state" value="${state}"/> +      <option name="license" value="BSD"/> + +      <!-- Set the complex options --> +      <mapping name="maintainers"> +        <element> +          <element key="handle" value="xue"/> +          <element key="name" value="Qiang Xue"/> +	  <element key="email" value="qiang.xue@gmail.com"/> +	  <element key="role" value="lead"/> +	</element> +        <element> +          <element key="handle" value="wei"/> +          <element key="name" value="Xiang Wei Zhuo"/> +	  <element key="email" value="weizhuo@gmail.com"/> +	  <element key="role" value="lead"/> +	</element> +      </mapping> + +      <mapping name="deps"> +        <element> +	  <element key="type" value="php"/> +	  <element key="version" value="5.0.3"/> +	  <element key="rel" value="ge"/> +	</element> +      </mapping> +       +      <mapping name="dir_roles"> +        <element key="docs" value="doc"/> +      </mapping> + +      <mapping name="exceptions"> +        <element key="HISTORY" value="doc"/> +      </mapping> +    </pearpkg> + +    <echo>Validating package.xml</echo> +    <exec command="pear package-validate package.xml" dir="${build.base.dir}" passthru="true"/> +     +    <!--<echo>Converting package.xml from v1 to v2</echo> +    <exec command="pear convert" dir="${build.base.dir}" passthru="true"/>--> +     +    <echo>Creating tar.gz package...</echo> +    <mkdir dir="${dist.base.dir}"/> +    <tar compression="gzip" destFile="${dist.pearfile}" basedir="${build.base.dir}"/> +  </target>    <target name="clean">      <echo>Cleaning up the mess</echo> -    <delete dir="${build.dir}"/> -    <delete dir="${doc.dir}"/> -    <delete dir="${reports.unit.dir}"/> -    <delete dir="${reports.codecoverage.dir}"/> +    <delete dir="${build.base.dir}"/> +    <delete dir="${dist.base.dir}"/> +    <delete dir="${doc.api.dir}"/> +    <delete dir="${reports.dir}"/>    </target>  </project>
\ No newline at end of file diff --git a/etc/style/coverage-frames.xsl b/buildscripts/phing/style/coverage-frames.xsl index edfcf298..edfcf298 100644 --- a/etc/style/coverage-frames.xsl +++ b/buildscripts/phing/style/coverage-frames.xsl diff --git a/etc/style/log.xsl b/buildscripts/phing/style/log.xsl index a460b667..a460b667 100644 --- a/etc/style/log.xsl +++ b/buildscripts/phing/style/log.xsl diff --git a/etc/style/phpunit2-frames.xsl b/buildscripts/phing/style/phpunit2-frames.xsl index 7ccc4f33..7ccc4f33 100644 --- a/etc/style/phpunit2-frames.xsl +++ b/buildscripts/phing/style/phpunit2-frames.xsl diff --git a/etc/style/phpunit2-noframes.xsl b/buildscripts/phing/style/phpunit2-noframes.xsl index d2c772da..d2c772da 100644 --- a/etc/style/phpunit2-noframes.xsl +++ b/buildscripts/phing/style/phpunit2-noframes.xsl diff --git a/etc/style/str.replace.function.xsl b/buildscripts/phing/style/str.replace.function.xsl index 5d74e86c..5d74e86c 100644 --- a/etc/style/str.replace.function.xsl +++ b/buildscripts/phing/style/str.replace.function.xsl diff --git a/tests/unit/I18N/core/CultureInfoTest.php b/tests/unit/I18N/core/CultureInfoTest.php new file mode 100644 index 00000000..14b60ece --- /dev/null +++ b/tests/unit/I18N/core/CultureInfoTest.php @@ -0,0 +1,81 @@ +<?php +require_once dirname(__FILE__).'/../../phpunit2.php'; + +Prado::using('System.I18N.core.CultureInfo'); + +/** + * @package System.I18N.core + */ +class CultureInfoTest extends PHPUnit2_Framework_TestCase { +  protected $culture; +  +  function setUp() { +    $this->culture = CultureInfo::getInvariantCulture(); +  } +   +  function testCultureName() { +    $name = 'en'; +     +    $this->assertEquals($name, $this->culture->Name); +     +    //the default/invariant culture should be neutral +    $this->assertTrue($this->culture->IsNeutralCulture); +  } + +  function testCultureList() { +    $allCultures = CultureInfo::getCultures(); +    $neutralCultures = CultureInfo::getCultures(CultureInfo::NEUTRAL); +    $specificCultures = CultureInfo::getCultures(CultureInfo::SPECIFIC); +     +    //there should be 246 cultures all together. +    $this->assertEquals(count($allCultures),246); +    $this->assertEquals(count($neutralCultures),76); +    $this->assertEquals(count($specificCultures),170);   +  } + +  function testParentCultures() { +    $zh_CN = new CultureInfo('zh_CN'); +    $parent = $zh_CN->Parent; +    $grandparent = $parent->Parent; +     +    $this->assertEquals($zh_CN->Name, 'zh_CN'); +    $this->assertEquals($parent->Name, 'zh'); +    $this->assertEquals($grandparent->Name, 'en'); +    $this->assertEquals($grandparent->Parent->Name, 'en'); +  } + +  function testCountryNames() { +    $culture = new CultureInfo('fr_FR'); +    $this->assertEquals($culture->Countries['AE'], 'Émirats arabes unis'); +  } + +  function testCurrencies() { +    $culture = new CultureInfo('en_AU'); +    $au = array('$', 'Australian Dollar'); +    $this->assertEquals($au, $culture->Currencies['AUD']); +  } +   +  function testLanguages() { +    $culture = new CultureInfo('fr_BE'); +    $this->assertEquals($culture->Languages['fr'], 'français'); +  } +   +  function testScripts() { +    $culture = new CultureInfo('fr'); +    $this->assertEquals($culture->Scripts['Armn'], 'arménien'); +  } +   +  function testTimeZones() { +    $culture = new CultureInfo('fi'); +    $zone = array( +		  "America/Los_Angeles", +		  "Tyynenmeren normaaliaika", +		  "PST", +		  "Tyynenmeren kesäaika", +		  "PDT", +		  "Los Angeles"); +    $this->assertEquals($culture->TimeZones[1],$zone); +  } +} + +?>
\ No newline at end of file diff --git a/tests/unit/I18N/core/NumberFormatInfoTest.php b/tests/unit/I18N/core/NumberFormatInfoTest.php new file mode 100644 index 00000000..a3b6d05a --- /dev/null +++ b/tests/unit/I18N/core/NumberFormatInfoTest.php @@ -0,0 +1,88 @@ +<?php +require_once dirname(__FILE__).'/../../phpunit2.php'; + +//NOTE: This page require UTF-8 aware editors +Prado::using('System.I18N.core.NumberFormatInfo'); + +/** + * @package System.I18N.core + */ +class NumberFormatInfoTest extends PHPUnit2_Framework_TestCase { +   +  function testCurrencyPatterns() { +    $numberInfo = NumberFormatInfo::getCurrencyInstance(); +     +    //there should be 2 decimal places. +    $this->assertEquals($numberInfo->DecimalDigits,2); +    $this->assertEquals($numberInfo->DecimalSeparator,'.'); +    $this->assertEquals($numberInfo->GroupSeparator,','); +     +    //there should be only 1 grouping of size 3 +    $groupsize = array(3,false); +    $this->assertEquals($numberInfo->GroupSizes, $groupsize); +     +    //the default negative pattern prefix and postfix +    $negPattern = array('-¤',''); +    $this->assertEquals($numberInfo->NegativePattern, $negPattern); +     +    //the default positive pattern prefix and postfix +    $negPattern = array('¤',''); +    $this->assertEquals($numberInfo->PositivePattern, $negPattern); +     +    //the default currency symbol +    $this->assertEquals($numberInfo->CurrencySymbol, 'US$'); +    $this->assertEquals($numberInfo->getCurrencySymbol('JPY'), '¥'); +    $this->assertEquals($numberInfo->NegativeInfinitySymbol, '-∞'); +    $this->assertEquals($numberInfo->PositiveInfinitySymbol, '+∞'); +    $this->assertEquals($numberInfo->NegativeSign, '-'); +    $this->assertEquals($numberInfo->PositiveSign, '+'); +    $this->assertEquals($numberInfo->NaNSymbol, '�'); +    $this->assertEquals($numberInfo->PercentSymbol, '%'); +    $this->assertEquals($numberInfo->PerMilleSymbol, '‰');   +  } + +  function testPatternsSet() { +    $numberInfo = NumberFormatInfo::getInstance(); +     +    $numberInfo->DecimalDigits = 0; +    $this->assertEquals($numberInfo->DecimalDigits,0); +     +    $numberInfo->DecimalSeparator = ','; +    $this->assertEquals($numberInfo->DecimalSeparator,','); +     +    $numberInfo->GroupSeparator = ' '; +    $this->assertEquals($numberInfo->GroupSeparator,' '); +     +    $numberInfo->GroupSizes = array(2,3); +    $groupsize = array(2,3); +    $this->assertEquals($numberInfo->GroupSizes, $groupsize); +     +    $numberInfo->NegativePattern = array('-$$','.'); +    $negPattern = array('-$$','.'); +    $this->assertEquals($numberInfo->NegativePattern, $negPattern); +     +    $numberInfo->PositivePattern = array('YY','.'); +    $negPattern = array('YY','.'); +    $this->assertEquals($numberInfo->PositivePattern, $negPattern); +     +    //the default CurrencySymbol symbol +    $numberInfo->CurrencySymbol = '$$$'; +    $this->assertEquals($numberInfo->CurrencySymbol, '$$$'); +  } +   +  function testLocalizedPatterns() { +    $fr = NumberFormatInfo::getInstance('fr'); +    $de = NumberFormatInfo::getInstance('de'); +    $en = NumberFormatInfo::getInstance('en_US'); +     +    $this->assertEquals($fr->DecimalSeparator, ','); +    $this->assertEquals($de->DecimalSeparator, ','); +    $this->assertEquals($en->DecimalSeparator, '.'); +     +    $this->assertEquals($fr->GroupSeparator, ' '); +    $this->assertEquals($de->GroupSeparator, '.'); +    $this->assertEquals($en->GroupSeparator, ','); +  } +} + +?>
\ No newline at end of file diff --git a/tests/unit/I18N/TNumberFormatTest.php b/tests/unit/I18N/core/NumberFormatTest.php index 18e5f3ff..af6a06ca 100644 --- a/tests/unit/I18N/TNumberFormatTest.php +++ b/tests/unit/I18N/core/NumberFormatTest.php @@ -1,13 +1,13 @@  <?php -require_once dirname(__FILE__).'/../phpunit2.php'; +require_once dirname(__FILE__).'/../../phpunit2.php';  //NOTE: This page require UTF-8 aware editors  Prado::using('System.I18N.core.NumberFormat');  /** - * @package System.I18N + * @package System.I18N.core   */ -class TNumberFormatTest extends PHPUnit2_Framework_TestCase { +class NumberFormatTest extends PHPUnit2_Framework_TestCase {    function testDefaultFormats() {      $formatter = new NumberFormat();      $number = '123456789.125156'; @@ -91,13 +91,21 @@ class TNumberFormatTest extends PHPUnit2_Framework_TestCase {      $this->assertNotEquals($wanted, $formatter->format($number, $pattern));    } -  function testNegativeValue() { +  function testFormatWithANegativeValue() {      $formatter = new NumberFormat();      $number = "-1.2";      $wanted = "-1.2";      $this->assertEquals($wanted, $formatter->format($number));    } + +  public function testFormatWithAScientificPattern() { +    $formatter = new NumberFormat(); +    $number = "10"; +    $expected = "10E"; +    $this->assertEquals('10E', $formatter->format($number, 'e')); +  } +  }  ?>
\ No newline at end of file  | 
