From 12893d0bd37976a2cfca7eb0a96f81437d25ed4b Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Mon, 17 Aug 2009 06:08:47 +0000 Subject: - Patch #340283 by boombatower, dmitrig01 et al: abstract the simpletest broswer in its own class/object. --- modules/simpletest/tests/browser.test | 123 ++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 modules/simpletest/tests/browser.test (limited to 'modules/simpletest/tests/browser.test') diff --git a/modules/simpletest/tests/browser.test b/modules/simpletest/tests/browser.test new file mode 100644 index 000000000..1f58576ee --- /dev/null +++ b/modules/simpletest/tests/browser.test @@ -0,0 +1,123 @@ + t('Browser'), + 'description' => t('Test general browser functionality.'), + 'group' => t('Browser'), + ); + } + + public function setUp() { + parent::setUp('browser_test'); + } + + /** + * Test general browser functionality. + */ + public function testBrowserBackend() { + global $db_prefix; + + $browser = new Browser(); + $browser->setUserAgent(drupal_generate_test_ua($db_prefix)); + + // Check browser refresh, both meta tag and HTTP header. + $request = $browser->get(url('browser_test/refresh/meta', array('absolute' => TRUE))); + $this->assertEqual($request['content'], 'Refresh successful', 'Meta refresh successful ($request)'); + $this->assertEqual($browser->getContent(), 'Refresh successful', 'Meta refresh successful ($browser)'); + + $request = $browser->get(url('browser_test/refresh/header', array('absolute' => TRUE))); + $this->assertEqual($request['content'], 'Refresh successful', 'Meta refresh successful ($request)'); + $this->assertEqual($browser->getContent(), 'Refresh successful', 'Meta refresh successful ($browser)'); + } +} + +/** + * Test browser backend wrappers. + */ +class BrowserBackendTestCase extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => t('Browser - wrapper backends'), + 'description' => t('Test stream and curl backends execution of GET and POST requests.'), + 'group' => t('Browser'), + ); + } + + public function setUp() { + parent::setUp('browser_test'); + } + + /** + * Test stream and curl backends execution of GET and POST requests. + */ + public function testBrowserBackend() { + global $db_prefix; + + foreach (array('stream', 'curl') as $wrapper) { + $browser = new Browser($wrapper == 'stream'); + $browser->setUserAgent(drupal_generate_test_ua($db_prefix)); + + $string = $this->randomName(); + $edit = array( + 'foo' => $string, + ); + + // Test GET method. + $request = $browser->get(url('browser_test/print/get', array('absolute' => TRUE, 'query' => $edit))); + $this->assertEqual($string, $request['content'], t('String found during GET request ($request)'), $wrapper); + $this->assertEqual($string, $browser->getContent(), t('String found during GET request ($browser)'), $wrapper); + + // Test POST method. + $request = $browser->post(url('browser_test/print/post', array('absolute' => TRUE)), $edit, t('Submit')); + $this->assertEqual($string, $request['content'], t('String found during POST request ($request)'), $wrapper); + $this->assertEqual($string, $browser->getContent(), t('String found during POST request ($browser)'), $wrapper); + } + } +} + +/** + * Test browser page manipulation functionality. + */ +class BrowserPageTestCase extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => t('Browser - page'), + 'description' => t('Check "BrowserPage" class functionality.'), + 'group' => t('Browser'), + ); + } + + public function setUp() { + parent::setUp('browser_test'); + } + + /** + * Check "BrowserPage" class functionality. + */ + public function testBrowserPage() { + global $db_prefix; + + $browser = new Browser(); + $browser->setUserAgent(drupal_generate_test_ua($db_prefix)); + + $browser->get(url('browser_test/print/post', array('absolute' => TRUE))); + $page = $browser->getPage(); + $input = $page->xpath('//input[@name="foo"]'); + $input = $input[0]; + $this->assertEqual('foo', $input['name'], t('Field "foo" found')); + } +} -- cgit v1.2.3