From 26c3775697fc94086269d54099576679137e5eda Mon Sep 17 00:00:00 2001
From: wei <>
Date: Fri, 14 Jul 2006 05:27:35 +0000
Subject: Fixed #284

---
 .../tickets/protected/pages/Ticket284.page         | 14 ++++
 .../tickets/protected/pages/Ticket284.php          | 11 +++
 .../tickets/protected/pages/Ticket284Component.php | 94 ++++++++++++++++++++++
 .../tickets/protected/pages/Ticket284Component.tpl | 94 ++++++++++++++++++++++
 .../tickets/tests/Ticket284TestCase.php            | 14 ++++
 tests/test_tools/simpletest/test_case.php          |  2 +-
 6 files changed, 228 insertions(+), 1 deletion(-)
 create mode 100644 tests/FunctionalTests/tickets/protected/pages/Ticket284.page
 create mode 100644 tests/FunctionalTests/tickets/protected/pages/Ticket284.php
 create mode 100644 tests/FunctionalTests/tickets/protected/pages/Ticket284Component.php
 create mode 100644 tests/FunctionalTests/tickets/protected/pages/Ticket284Component.tpl
 create mode 100644 tests/FunctionalTests/tickets/tests/Ticket284TestCase.php

(limited to 'tests')

diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket284.page b/tests/FunctionalTests/tickets/protected/pages/Ticket284.page
new file mode 100644
index 00000000..ff25e3fb
--- /dev/null
+++ b/tests/FunctionalTests/tickets/protected/pages/Ticket284.page
@@ -0,0 +1,14 @@
+<com:TContent ID="Content">
+
+
+<com:Application.pages.Ticket284Component ID="fooBar" ShowHours="true" ShowMinutes="true" />
+<com:TCustomValidator
+	ControlToValidate="fooBar"
+	OnServerValidate="checkUserAvailability"
+	Display="Dynamic"
+	Text="Unavailable."
+	CssClass="inlineError" />
+<com:TButton Text="POST it!" />
+
+</com:TContent>
+
diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket284.php b/tests/FunctionalTests/tickets/protected/pages/Ticket284.php
new file mode 100644
index 00000000..332789ff
--- /dev/null
+++ b/tests/FunctionalTests/tickets/protected/pages/Ticket284.php
@@ -0,0 +1,11 @@
+<?php
+
+class Ticket284 extends TPage
+{
+	function checkUserAvailability()
+	{
+		
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket284Component.php b/tests/FunctionalTests/tickets/protected/pages/Ticket284Component.php
new file mode 100644
index 00000000..892bdc87
--- /dev/null
+++ b/tests/FunctionalTests/tickets/protected/pages/Ticket284Component.php
@@ -0,0 +1,94 @@
+<?php
+
+class Ticket284Component extends TTemplateControl implements IValidatable
+{
+ 	public function onPreRender($param)
+ 	{
+		if (!$this->ShowHours && $this->ShowMinutes)
+		{
+			throw new TConfigurationException(
+				'Invalid OPSDatePicker Config: You cannot specify ShowMinutes="true" while ShowHours="false"'
+			);
+		}
+	}
+
+    public function getDatePicker()
+    {
+        $this->ensureChildControls();
+        return $this->getRegisteredObject('datePicker');
+    }
+    
+    public function getHourPicker()
+    {
+        $this->ensureChildControls();
+        return $this->getRegisteredObject('hourPicker');
+    }
+    
+    public function getMinutePicker()
+    {
+        $this->ensureChildControls();
+        return $this->getRegisteredObject('minutePicker');
+    }
+	
+	public function getShowHours()
+	{
+		return $this->HourPicker->Visible;
+	}
+	
+	public function setShowHours($value)
+	{
+		$this->HourPicker->Visible = TPropertyValue::ensureBoolean($value);
+	}
+	
+	public function getShowMinutes()
+	{
+		return $this->MinutePicker->Visible;
+	}
+	
+	public function setShowMinutes($value)
+	{
+		$this->MinutePicker->Visible = TPropertyValue::ensureBoolean($value);
+	}
+
+	public function getTimeStamp()
+	{
+		return strtotime($this->Date);
+	}
+	
+	public function setTimeStamp($value)
+	{
+		$ts = TPropertyValue::ensureInteger($value);
+		$this->DatePicker->TimeStamp = $ts;
+		$this->HourPicker->SelectedValue = date('H', $ts);
+		$this->MinutePicker->SelectedValue = date('i', $ts);
+	}
+	
+	public function getDate()
+	{
+		$dateStr = $this->DatePicker->Date;
+		if ($this->ShowHours){
+			$dateStr .= ' '.$this->HourPicker->SelectedValue;
+		}
+		if ($this->ShowMinutes){
+			$dateStr .= ':'.$this->MinutePicker->SelectedValue;
+		}
+		return $dateStr;
+	}
+	
+	public function setDate($value)
+	{
+		$dateStr = TPropertyValue::ensureString($value);
+		$this->TimeStamp = strtotime($dateStr);
+	}
+	
+	public function getValidationPropertyValue()
+	{
+		if ($this->DatePicker->Date === ''){
+			return '';
+		}
+		else{
+			return $this->TimeStamp;
+		}
+	}
+}
+?>
\ No newline at end of file
diff --git a/tests/FunctionalTests/tickets/protected/pages/Ticket284Component.tpl b/tests/FunctionalTests/tickets/protected/pages/Ticket284Component.tpl
new file mode 100644
index 00000000..ed787287
--- /dev/null
+++ b/tests/FunctionalTests/tickets/protected/pages/Ticket284Component.tpl
@@ -0,0 +1,94 @@
+<com:TDatePicker ID="datePicker"
+	Style.width="68px"
+	Mode="ImageButton"
+	DateFormat="MM/dd/yyyy" />
+
+<com:TDropDownList ID="hourPicker" Style.width="40px" Visible="false">
+	<com:TListItem Text="00" Value="00" />
+	<com:TListItem Text="01" Value="01" />
+	<com:TListItem Text="02" Value="02" />
+	<com:TListItem Text="03" Value="03" />
+	<com:TListItem Text="04" Value="04" />
+	<com:TListItem Text="05" Value="05" />
+	<com:TListItem Text="06" Value="06" />
+	<com:TListItem Text="07" Value="07" />
+	<com:TListItem Text="08" Value="08" />
+	<com:TListItem Text="09" Value="09" />
+	<com:TListItem Text="10" Value="10" />
+	<com:TListItem Text="11" Value="11" />
+	<com:TListItem Text="12" Value="12" />
+	<com:TListItem Text="13" Value="13" />
+	<com:TListItem Text="14" Value="14" />
+	<com:TListItem Text="15" Value="15" />
+	<com:TListItem Text="16" Value="16" />
+	<com:TListItem Text="17" Value="17" />
+	<com:TListItem Text="18" Value="18" />
+	<com:TListItem Text="19" Value="19" />
+	<com:TListItem Text="20" Value="20" />
+	<com:TListItem Text="21" Value="21" />
+	<com:TListItem Text="22" Value="22" />
+	<com:TListItem Text="23" Value="23" />	
+</com:TDropDownList>
+
+<com:TDropDownList ID="minutePicker" Style.width="40px" Visible="false">
+	<com:TListItem Text="00" Value="00" />
+	<com:TListItem Text="01" Value="01" />
+	<com:TListItem Text="02" Value="02" />
+	<com:TListItem Text="03" Value="03" />
+	<com:TListItem Text="04" Value="04" />
+	<com:TListItem Text="05" Value="05" />
+	<com:TListItem Text="06" Value="06" />
+	<com:TListItem Text="07" Value="07" />
+	<com:TListItem Text="08" Value="08" />
+	<com:TListItem Text="09" Value="09" />
+	<com:TListItem Text="10" Value="10" />
+	<com:TListItem Text="11" Value="11" />
+	<com:TListItem Text="12" Value="12" />
+	<com:TListItem Text="13" Value="13" />
+	<com:TListItem Text="14" Value="14" />
+	<com:TListItem Text="15" Value="15" />
+	<com:TListItem Text="16" Value="16" />
+	<com:TListItem Text="17" Value="17" />
+	<com:TListItem Text="18" Value="18" />
+	<com:TListItem Text="19" Value="19" />
+	<com:TListItem Text="20" Value="20" />
+	<com:TListItem Text="21" Value="21" />
+	<com:TListItem Text="22" Value="22" />
+	<com:TListItem Text="23" Value="23" />
+	<com:TListItem Text="24" Value="24" />
+	<com:TListItem Text="25" Value="25" />
+	<com:TListItem Text="26" Value="26" />
+	<com:TListItem Text="27" Value="27" />
+	<com:TListItem Text="28" Value="28" />
+	<com:TListItem Text="29" Value="29" />
+	<com:TListItem Text="30" Value="30" />
+	<com:TListItem Text="31" Value="31" />
+	<com:TListItem Text="32" Value="32" />
+	<com:TListItem Text="33" Value="33" />
+	<com:TListItem Text="34" Value="34" />
+	<com:TListItem Text="35" Value="35" />
+	<com:TListItem Text="36" Value="36" />
+	<com:TListItem Text="37" Value="37" />
+	<com:TListItem Text="38" Value="38" />
+	<com:TListItem Text="39" Value="39" />
+	<com:TListItem Text="40" Value="40" />
+	<com:TListItem Text="41" Value="41" />
+	<com:TListItem Text="42" Value="42" />
+	<com:TListItem Text="43" Value="43" />
+	<com:TListItem Text="44" Value="44" />
+	<com:TListItem Text="45" Value="45" />
+	<com:TListItem Text="46" Value="46" />
+	<com:TListItem Text="47" Value="47" />
+	<com:TListItem Text="48" Value="48" />
+	<com:TListItem Text="49" Value="49" />
+	<com:TListItem Text="50" Value="50" />
+	<com:TListItem Text="51" Value="51" />
+	<com:TListItem Text="52" Value="52" />
+	<com:TListItem Text="53" Value="53" />
+	<com:TListItem Text="54" Value="54" />
+	<com:TListItem Text="55" Value="55" />
+	<com:TListItem Text="56" Value="56" />
+	<com:TListItem Text="57" Value="57" />
+	<com:TListItem Text="58" Value="58" />
+	<com:TListItem Text="59" Value="59" />
+</com:TDropDownList>
\ No newline at end of file
diff --git a/tests/FunctionalTests/tickets/tests/Ticket284TestCase.php b/tests/FunctionalTests/tickets/tests/Ticket284TestCase.php
new file mode 100644
index 00000000..9a6fa7c3
--- /dev/null
+++ b/tests/FunctionalTests/tickets/tests/Ticket284TestCase.php
@@ -0,0 +1,14 @@
+<?php
+
+class Ticket284TestCase extends SeleniumTestCase
+{
+	function test()
+	{
+		$this->open('tickets/index.php?page=Ticket284');
+		$this->assertTextPresent('Verifying Ticket 284');
+		$this->click('ctl0_Content_ctl1');
+		
+	}
+}
+
+?>
\ No newline at end of file
diff --git a/tests/test_tools/simpletest/test_case.php b/tests/test_tools/simpletest/test_case.php
index e3a1aff5..1bf49789 100644
--- a/tests/test_tools/simpletest/test_case.php
+++ b/tests/test_tools/simpletest/test_case.php
@@ -478,7 +478,7 @@
          */
         function _requireWithError($file) {
             $this->_enableErrorReporting();
-            include($file);
+            include_once($file);
             $error = isset($php_errormsg) ? $php_errormsg : false;
             $this->_disableErrorReporting();
             $self_inflicted_errors = array(
-- 
cgit v1.2.3