11<?php
22
3+ if ( ! defined ( 'WEEK_IN_SECONDS ' ) ) {
4+ define ( 'WEEK_IN_SECONDS ' , 60 * 60 * 24 * 7 );
5+ }
6+
7+
38class Whip_DismissStorageMock implements Whip_DismissStorage {
49
5- /** @var string */
6- protected $ dismissed = '' ;
10+ /** @var int */
11+ protected $ dismissed = 0 ;
712
813 /**
914 * Saves the value.
1015 *
11- * @param string $dismissedVersion The value to save.
16+ * @param int $dismissedValue The value to save.
17+ *
18+ * @return boolean
1219 */
13- public function set ( $ dismissedVersion ) {
14- $ this ->dismissed = $ dismissedVersion ;
20+ public function set ( $ dismissedValue ) {
21+ $ this ->dismissed = $ dismissedValue ;
22+
23+ return true ;
1524 }
1625
1726 /**
1827 * Returns the value.
1928 *
20- * @return string
29+ * @return int
2130 */
2231 public function get () {
2332 return $ this ->dismissed ;
@@ -31,41 +40,46 @@ class MessageDismisserTest extends PHPUnit_Framework_TestCase {
3140 * @covers Whip_MessageDismisser::dismiss()
3241 */
3342 public function testDismiss () {
34- $ storage = new Whip_DismissStorageMock ();
35- $ dismisser = new Whip_MessageDismisser ( '4.8 ' , $ storage );
43+ $ currentTime = time ();
44+ $ storage = new Whip_DismissStorageMock ();
45+ $ dismisser = new Whip_MessageDismisser ( $ currentTime , WEEK_IN_SECONDS * 4 , $ storage );
46+
47+ $ this ->assertEquals ( 0 , $ storage ->get () );
3648
3749 $ dismisser ->dismiss ();
3850
39- $ this ->assertEquals ( ' 4.8 ' , $ storage ->get () );
51+ $ this ->assertEquals ( $ currentTime , $ storage ->get () );
4052 }
4153
4254 /**
4355 * @dataProvider versionNumbersProvider
4456 *
45- * @param string $savedVersion The saved version number .
46- * @param string $currentVersion The current version number .
47- * @param bool $expected The expected value.
57+ * @param int $savedTime The saved time .
58+ * @param int $currentTime The current time .
59+ * @param bool $expected The expected value.
4860 *
4961 * @covers Whip_MessageDismisser::__construct()
5062 * @covers Whip_MessageDismisser::isDismissed()
51- * @covers Whip_MessageDismisser::toMajorVersion()
5263 */
53- public function testIsDismissibleWithVersions ( $ savedVersion , $ currentVersion , $ expected ) {
64+ public function testIsDismissibleWithVersions ( $ savedTime , $ currentTime , $ expected ) {
5465 $ storage = new Whip_DismissStorageMock ();
55- $ storage ->set ( $ savedVersion );
56- $ dismisser = new Whip_MessageDismisser ( $ currentVersion , $ storage );
66+ $ storage ->set ( $ savedTime );
67+ $ dismisser = new Whip_MessageDismisser ( $ currentTime , WEEK_IN_SECONDS * 4 , $ storage );
5768
5869 $ this ->assertEquals ( $ expected , $ dismisser ->isDismissed () );
5970 }
6071
72+ /**
73+ * Provides array with test values.
74+ *
75+ * @return array
76+ */
6177 public function versionNumbersProvider () {
6278 return array (
63- array ( '4.8 ' , '4.8 ' , true ),
64- array ( '4.8 ' , '4.8.1 ' , true ),
65- array ( '4.7 ' , '4.8 ' , false ),
66- array ( '4.7 ' , '4.8.1 ' , false ),
67- array ( '4.7.1 ' , '4.8.1 ' , false ),
68- array ( '4.7 ' , '4.7-alpha ' , true ),
79+ array ( strtotime ( "-2weeks " ), time (), true ),
80+ array ( strtotime ( "-4weeks " ), time (), true ),
81+ array ( strtotime ( "-6weeks " ), time (), false ),
82+ array ( time (), time (), true ),
6983 );
7084 }
7185
0 commit comments