Chris@17: enableViewsTestModule(); Chris@17: } Chris@17: Chris@17: /** Chris@17: * Tests an ajax view. Chris@17: */ Chris@17: public function testAjaxView() { Chris@17: $this->drupalGet('test_ajax_view'); Chris@17: Chris@17: $drupal_settings = $this->getDrupalSettings(); Chris@17: $this->assertTrue(isset($drupal_settings['views']['ajax_path']), 'The Ajax callback path is set in drupalSettings.'); Chris@17: $this->assertEqual(count($drupal_settings['views']['ajaxViews']), 1); Chris@17: $view_entry = array_keys($drupal_settings['views']['ajaxViews'])[0]; Chris@17: $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: $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: } Chris@17: Chris@17: /** Chris@17: * Ensures that non-ajax view cannot be accessed via an ajax HTTP request. Chris@17: */ Chris@17: public function testNonAjaxViewViaAjax() { Chris@17: $client = $this->getHttpClient(); Chris@17: $response = $client->request('POST', $this->buildUrl('views/ajax'), [ Chris@17: 'form_params' => ['view_name' => 'test_ajax_view', 'view_display_id' => 'default'], Chris@17: 'query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax'], Chris@17: ]); Chris@17: $this->assertEquals(200, $response->getStatusCode()); Chris@17: $response = $client->request('POST', $this->buildUrl('views/ajax'), [ Chris@17: 'form_params' => ['view_name' => 'test_view', 'view_display_id' => 'default'], Chris@17: 'query' => [MainContentViewSubscriber::WRAPPER_FORMAT => 'drupal_ajax'], Chris@17: 'http_errors' => FALSE, Chris@17: ]); Chris@17: $this->assertEquals(403, $response->getStatusCode()); Chris@17: } Chris@17: Chris@17: }