Esempio n. 1
0
<?php

/** @todo make this ducking thing work */
use Codeception\Util\Fixtures;
/** @type \Codeception\Scenario $scenario */
$scenario->groups('api', 'content');
$scenario->skip('XML and RSS checking is still not implemented');
$I = new ApiGuy($scenario);
$I->wantTo('Verify that posts are displayed correctly in json, xml and rss formats');
$totalPostsNumber = Fixtures::get('data:posts:length');
$lastPage = ceil($totalPostsNumber / 5);
$nonexistingPage = $lastPage + 1;
$firstCategorySlug = Fixtures::get('data:categories[0]:slug');
$urls = array(\BlogFeedPage::$url, \AuthorFeedPage::route(1), \CategoryFeedPage::route($firstCategorySlug));
foreach ($urls as $url) {
    $I->amOnPage($url . '?format=json');
    $I->seeResponseIsJson();
    $I->amOnPage($url . '?format=json&page=' . $lastPage);
    $I->seeResponseIsJson();
    $I->amOnPage($url . '?format=json&page=' . $nonexistingPage);
    $I->seeResponseCodeIs(404);
    /** @todo wouldn't it be cooler to return the last page on -1, penultimate page
     * on -2 and so on? */
    $I->amOnPage($url . '?format=json&page=-1');
    $I->seeResponseCodeIs(400);
    $I->amOnPage($url . '?format=xml');
    $I->seeResponseContains('<posts>');
    $I->assertNotEmpty($xml->posts);
    $I->amOnPage($url . '?format=xml&page=' . $lastPage);
    $response = $I->grabResponse();
    $xml = new \SimpleXMLElement($response);
Esempio n. 2
0
<?php

use Codeception\Util\Fixtures;
/** @type \Codeception\Scenario $scenario */
$scenario->groups('api', 'ajax');
\Yii::app()->fixtureManager->prepare();
$I = new ApiGuy($scenario);
$I->wantTo('Ensure ajax comment update works fine');
$I->amOnPage(\BlogFeedPage::$url);
$I->click(\BlogFeedPage::$postTitleSelector);
$postUrl = $I->grabFromCurrentUrl();
$ajaxUrl = $I->grabAttributeFrom(\PostPage::$commentForm, 'data-action-ajax');
$I->sendPOST($ajaxUrl, array(\PostPage::$commentTextArea => 'Sample comment', \PostPage::$commentUsernameField => 'Fuy Gox'));
$I->assertTrue($I->grabDataFromJsonResponse('success'));
$I->assertNotEmpty($I->grabDataFromJsonResponse('data'));
$I->sendPOST($ajaxUrl, array(\PostPage::$commentTextArea => 'Sample comment'));
$I->assertFalse($I->grabDataFromJsonResponse('success'));
$I->assertNotEmpty($I->grabDataFromJsonResponse('errors'));
$I->sendPOST($ajaxUrl, array(\PostPage::$commentUsernameField => 'Fuy Gox'));
$I->assertFalse($I->grabDataFromJsonResponse('success'));
$I->assertNotEmpty($I->grabDataFromJsonResponse('errors'));
$I->amOnPage(\LoginPage::$url);
$I->submitForm(\LoginPage::$formSelector, array(\LoginPage::$loginField => Fixtures::get('data:users[0]:login'), \LoginPage::$passwordField => Fixtures::get('data:users[0]:password')));
$I->sendPost($ajaxUrl, array(\PostPage::$commentTextArea => 'Sample comment'));
$I->assertTrue($I->grabDataFromJsonResponse('success'));
$I->assertNotEmpty($I->grabDataFromJsonResponse('data'));
Esempio n. 3
0
<?php

use Codeception\Util\Fixtures;
/** @type \Codeception\Scenario $scenario */
$scenario->groups('api', 'ajax');
\Yii::app()->fixtureManager->prepare();
$I = new ApiGuy($scenario);
$I->wantTo('Save category via ajax call');
$url = \Yii::app()->createUrl('category/ajaxSave');
$uniqueName = md5(microtime());
$I->assertNull(\Category::model()->findBySlug($uniqueName));
$I->amOnPage(\LoginPage::$url);
$I->submitForm(\LoginPage::$formSelector, array(\LoginPage::$loginField => Fixtures::get('data:users[0]:login'), \LoginPage::$passwordField => Fixtures::get('data:users[0]:password')));
$I->sendPOST($url, array('Category[name]' => $uniqueName, 'Category[slug]' => $uniqueName));
$I->seeResponseCodeIs(200);
$id = $I->grabDataFromJsonResponse('data.id');
$slug = $I->grabDataFromJsonResponse('data.slug');
$I->assertNotNull($category = \Category::model()->findBySlug($uniqueName));
$I->assertEquals($id, $category->id);
$I->assertEquals($slug, $category->slug);
$uniqueName = md5(microtime());
$I->sendPOST($url, array('Category[id]' => $id, 'Category[name]' => $uniqueName, 'Category[slug]' => $uniqueName));
$I->assertEquals($id, $I->grabDataFromJsonResponse('data.id'));
$I->assertNotNull($category = \Category::model()->findBySlug($uniqueName));
$I->assertEquals($category->id, $I->grabDataFromJsonResponse('data.id'));
$I->assertEquals($uniqueName, $I->grabDataFromJsonResponse('data.slug'));
$I->sendPOST($url, array('Category[name]' => $uniqueName, 'Category[slug]' => $uniqueName));
$I->assertNotEquals($id, $I->grabDataFromJsonResponse('data.id'));
$I->assertEquals($uniqueName . '-1', $I->grabDataFromJsonResponse('data.slug'));
$I->sendPOST($url, array('Category[slug]' => $uniqueName));
$I->assertFalse($I->grabDataFromJsonResponse('success'));