<?php

require_once dirname(__FILE__) . '/../../bootstrap/functional.php';
# load fixtures of this plugin
$propelData->loadData(sfConfig::get('sf_plugins_dir') . '/sfNewsletterPlugin/data/fixtures');
$browser = new sfTestFunctional(new sfBrowser());
$limeTest = $browser->test();
$limeTest->plan += 1;
$newsletter = NewsletterPeer::retrieveByName('second newsletter');
$limeTest->isa_ok($newsletter, 'Newsletter', 'Newsletter found.');
$browser->getAndCheck('sfNewsletter', 'read', '/newsletter/read/' . 0, 404);
$browser->getAndCheck('sfNewsletter', 'read', '/newsletter/read/' . $newsletter->getId(), 200);
$browser->responseContains($newsletter->getContent());
<?php

require_once dirname(__FILE__) . '/../../bootstrap/functional.php';
# load fixtures of this plugin
$propelData->loadData(sfConfig::get('sf_plugins_dir') . '/sfNewsletterPlugin/data/fixtures');
$browser = new sfTestFunctional(new sfBrowser());
$limeTest = $browser->test();
$browser->getAndCheck('sfSubscription', 'subscribe', '/newsletter/subscription', 200);
$browser->responseContains(sfSubscribeForm::PARAMETER_NAME);
$name = 'A valid username';
$email = '*****@*****.**';
$postData = array('name' => $name, 'email' => $email);
$browser->post('/newsletter/subscription', array(sfSubscribeForm::PARAMETER_NAME => $postData));
$browser->isStatusCode(200);
$browser->responseContains('An email has been sent to you, in order to verify your address.');
$limeTest->plan += 3;
$subscriber = SubscriberPeer::retrieveByEmail($email);
$limeTest->isa_ok($subscriber, 'Subscriber', 'Subscriber found.');
$limeTest->is($subscriber->getName(), $name, 'Name matches.');
$limeTest->is($subscriber->getEmail(), $email, 'Email matches.');
$limeTest->plan += 3;
$activationHash = $subscriber->getActivateHash();
$unsubscribeHash = $subscriber->getUnsubscribeHash();
$limeTest->isnt(empty($activationHash), true, 'Activation Hash set.');
$limeTest->isnt(empty($unsubscribeHash), true, 'Unsubscribe Hash set.');
$limeTest->isnt($subscriber->isSubscribed(), true, 'Subscriber is not activated, yet.');
# test activation and unsubscribe with fixtures
$limeTest->plan += 1;
$subscriber = SubscriberPeer::retrieveByEmail('*****@*****.**');
$limeTest->ok(!$subscriber->isSubscribed(), 'Subscriber not activated, yet.');
$browser->getAndCheck('sfSubscription', 'activate', '/newsletter/subscription/activate/' . $subscriber->getId() * 42 . '?' . activateAction::PARAMETER_NAME . '=invalid', 404);
<?php

require_once dirname(__FILE__) . '/../../bootstrap/functional.php';
// set up test env correctly
sfConfig::set('app_xcssplugin_path_to_css_dir', sfConfig::get('sf_plugins_dir') . DIRECTORY_SEPARATOR . 'sfXCSSPlugin' . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'fixtures' . DIRECTORY_SEPARATOR . 'web' . DIRECTORY_SEPARATOR . 'css' . DIRECTORY_SEPARATOR);
sfConfig::set('app_xcssplugin_saveforweb', 'xcss');
$browser = new sfTestFunctional(new sfBrowser());
$limeTest = $browser->test();
$limeTest->plan++;
$limeTest->ok(!file_exists($filename), 'File does not exist.');
$limeTest->plan++;
$limeTest->is(sfConfig::get('app_xcssplugin_saveforweb'), 'xcss', 'Save For Web enabled.');
$browser->getAndCheck('xcss', 'process', '/xcss/stylesheet.css', 200);
$browser->responseContains('h1 {border: #F00 1px solid;}');
$browser->isResponseHeader('Content-Type', 'text/css; charset=utf-8');
$limeTest->plan++;
$filename = sfConfig::get('sf_web_dir') . DIRECTORY_SEPARATOR . 'xcss' . DIRECTORY_SEPARATOR . 'stylesheet.css';
$limeTest->ok(file_exists($filename), 'File has been saved for web access.');
// cleanup
$limeTest->plan++;
$limeTest->ok(unlink($filename), 'File has been removed.');