annotate core/modules/views/tests/src/Functional/ViewAjaxTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@17 1 <?php
Chris@17 2
Chris@17 3 namespace Drupal\Tests\views\Functional;
Chris@17 4
Chris@17 5 use Drupal\Core\EventSubscriber\MainContentViewSubscriber;
Chris@17 6
Chris@17 7 /**
Chris@17 8 * Tests the ajax view functionality.
Chris@17 9 *
Chris@17 10 * @group views
Chris@17 11 */
Chris@17 12 class ViewAjaxTest extends ViewTestBase {
Chris@17 13
Chris@17 14 /**
Chris@17 15 * Views used by this test.
Chris@17 16 *
Chris@17 17 * @var array
Chris@17 18 */
Chris@17 19 public static $testViews = ['test_ajax_view', 'test_view'];
Chris@17 20
Chris@17 21 protected function setUp($import_test_views = TRUE) {
Chris@17 22 parent::setUp($import_test_views);
Chris@17 23
Chris@17 24 $this->enableViewsTestModule();
Chris@17 25 }
Chris@17 26
Chris@17 27 /**
Chris@17 28 * Tests an ajax view.
Chris@17 29 */
Chris@17 30 public function testAjaxView() {
Chris@17 31 $this->drupalGet('test_ajax_view');
Chris@17 32
Chris@17 33 $drupal_settings = $this->getDrupalSettings();
Chris@17 34 $this->assertTrue(isset($drupal_settings['views']['ajax_path']), 'The Ajax callback path is set in drupalSettings.');
Chris@17 35 $this->assertEqual(count($drupal_settings['views']['ajaxViews']), 1);
Chris@17 36 $view_entry = array_keys($drupal_settings['views']['ajaxViews'])[0];
Chris@17 37 $this->assertEqual($drupal_settings['views']['ajaxViews'][$view_entry]['view_name'], 'test_ajax_view', 'The view\'s ajaxViews array entry has the correct \'view_name\' key.');
Chris@17 38 $this->assertEqual($drupal_settings['views']['ajaxViews'][$view_entry]['view_display_id'], 'page_1', 'The view\'s ajaxViews array entry has the correct \'view_display_id\' key.');
Chris@17 39 }
Chris@17 40
Chris@17 41 /**
Chris@17 42 * Ensures that non-ajax view cannot be accessed via an ajax HTTP request.
Chris@17 43 */
Chris@17 44 public function testNonAjaxViewViaAjax() {
Chris@17 45 $client = $this->getHttpClient();
Chris@17 46 $response = $client->request('POST', $this->buildUrl('views/ajax'), [
Chris@17 47 'form_params' => ['view_name' => 'test_ajax_view', 'view_display_id' => 'default'],
Chris@17 48 'query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax'],
Chris@17 49 ]);
Chris@17 50 $this->assertEquals(200, $response->getStatusCode());
Chris@17 51 $response = $client->request('POST', $this->buildUrl('views/ajax'), [
Chris@17 52 'form_params' => ['view_name' => 'test_view', 'view_display_id' => 'default'],
Chris@17 53 'query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax'],
Chris@17 54 'http_errors' => FALSE,
Chris@17 55 ]);
Chris@17 56 $this->assertEquals(403, $response->getStatusCode());
Chris@17 57 }
Chris@17 58
Chris@17 59 }