Drupal7 Simple Test case in Custom Module

ByKarthik Kumar D Kon12th Jul 2015, 2022-12-01T08:00:00+05:30
Read
Pause
Resume
Stop
Drupal7 Simple Test case in Custom Module

Why to write test case? Very simple, in one word, Its waste of time and effort of checking something we changed in code and that effects other part, and to make sure every time what change we make that should not effect any other code, so this task can be done by our test cases

In this article, giving a simple test example to create a drupal test case

  • Create a new PHP class that defines a test
  • Provide Drupal with meta-data about your test
  • Run your test to see if it works

1. Start with creating a module

Create a module "Simple Test" inside sites/all/modules/custom/simple_test

Create simple_test.info with the below content

  name = Simple test  core = 7.x

Create simple_test.module with the below content

  <?php  function simple_test_menu() {    $items = array();    $items['simple_test'] = array(      'title' => 'Simple Test',      'access callback' => TRUE,      'page callback' => 'simple_test_page',      'type' => MENU_NORMAL_ITEM,      'menu' => 'navigation',    );    return $items;  }  function simple_test_page() {    return t('Welcome to Drupal. Its simple_test..!');  }

Goto the modules page admin/modules and enable the Simple Test module

Next goto the page which you created just now in the module /simple_test, you can see "Welcome to Drupal. Its simple_test..!" this test which you have returned.

And, this is what we will be testing now

2. Use "DrupalWebTestCase"

A module can have one or more test cases, they can in single file or in many other files

All test files should have am extention as .test and should be named as MODULENAME.test

Create your new test case simple_test/tests/simple_test.test file.

All functional tests in Drupal should extend the DrupalWebTestCase class which will provide the utility functions used to drive the test browser, helper functions for interacting with a Drupal application, and all the assertions we will use to perform our actual tests.

Add the below code to your simple_test.test.

  <?php  class SimpleTest extends DrupalWebTestCase {  }

Add a getInfo() method to your SimpleTest class. This method returns an array that provides meta-data about our test that the SimpleTest module can use when displaying our test in the UI. This method is required in order for your test to work. This getInfo() method looks like shown below.

  public static function getInfo() {    return array(      'name' => 'Simple Test',      'description' => 'Tests for the Simple Test module.',      'group' => 'Simple Test Group',    );  }

Now add a setUp() method to SimpleTest. This method is called when the system is preparing the environment for running our tests. In this case, we need to ensure that our module is enable during setup so that the page we want to test is available. We can do this by calling the parent classes's setUp() method and passing it an array of modules we want enabled. This setUp() method looks like this

  public function setUp() {   parent::setUp(array('simple_test'));  }

Add a test*() method to our class. Each test case can have one or more methods whose names are prefixed with the string test. Each of these methods will be automatically called by the SimpleTest test runner, and should contain the various assertions required in order to demonstrate that this test is passing. This example will use the DrupalWebTestCase::drupalGet() method in order to tell the internal browser to navigate to the URL /helloworld. And then use the DrupalWebTestCase::assertText() method to verify that the string, "Hello World ...", exists somewhere in the HTML output of the page the internal browser is currently looking at.

public function test_your_simple_test() {  $this->drupalGet('simple_test');  $this->assertText('Welcome to Drupal. Its simple_test..!', 'The page content is present.');}

And last, we need to tell Drupal about our new test. Update your simple_test.info file and add the following line so that after clearing the cache the registry will contain a reference to our new SimpleTest class.

files[] = tests/helloworld.test


3. Run Test.

Clear the cache so Drupal locates our new test(s). Navigate to Configuration > Performance (admin/config/development/performance) in the Toolbar, and then clicking the "Clear all caches" button.

Navigate to Modules (admin/modules) in the Toolbar. Enable the Testing module in the Core section.

Navigate to Configuration > Testing (admin/config/development/testing).

Select the checkbox for the "SimpleTest" test to run all tests in this group, or alternately tip the drop down open and choose the individual test case you want to run.

Click the "Run tests" button.

A new page will open and display a progress bar while your tests run.

Once completed, you will be directed to a page with a table that shows the results of your tests.

1,600OFF
Xtore Beautiful Finish Uniquely Hand Crafted Home Dcor African Tribal Women Art Piece - (Set of 3, Multicolour), Resin

Xtore Beautiful Finish Uniquely Hand Crafted Home Dcor African Tribal Women Art Piece - (Set of 3, Multicolour), Resin

899 2,499
These uniquely hand crafted and painted resin black African tribal lady figure make an excellent compliment to any home/office decor. It makes a great display for culture/tradition appreciation events and a perfect gift for your loved ones. Unique and Rare - Hand Painted and Hand Crafted.
Home & Decor
13,000OFF
OnePlus 108 cm (43 inches) Y Series 4K Ultra HD Smart Android LED TV 43Y1S Pro (Black)

OnePlus 108 cm (43 inches) Y Series 4K Ultra HD Smart Android LED TV 43Y1S Pro (Black)

26,999 39,999
Resolution : 4K Ultra HD (3840x2160) | Refresh Rate : 60 Hertz. Connectivity: 3 HDMI ports to connect set top box, Blu Ray players, gaming console | 2 USB ports to connect hard drives and other USB devices | Dual-band Wi-Fi Sound : 24 Watts Output | Dolby Audio | Dolby Atmos Decoding. Smart TV features: Android TV | OnePlus Connect Ecosystem| Google Assistant | Chromecast, Miracast, DLNA | Auto Low Latency Mode | Supported Apps : Netflix, Youtube, Prime Video, Hotstar, SonyLiv, Hungama, JioCinema, Zee5, Eros Now, Oxygen Play.
Televisions
7,000OFF
OnePlus 80 cm (32 inches) Y Series HD Ready LED Smart Android TV 32Y1 (Black)

OnePlus 80 cm (32 inches) Y Series HD Ready LED Smart Android TV 32Y1 (Black)

12,999 19,999
Resolution: HD Ready (1366x768) | Refresh Rate: 60 hertz. Connectivity: 2 HDMI ports to connect set top box, Blu Ray players, gaming console | 2 USB ports to connect hard drives and other USB devices, Dimensions(TV With Stand) - 71.3cm x 20cm x 46.9cm | VESA Hole Pitch - 20cm x 20cm. Sound : 20 Watts Output | Dolby Audio. Smart TV Features: Android TV 9.0 | OnePlus Connect | Google Assistant | Play Store | Chromecast | Shared Album | Supported Apps : Netflix, YouTube, Prime video | Content Calendar | OxygenPlay. Display : LED Panel | Noise Reduction | Colour Space Mapping |Dynamic Contrast | Anti-Aliasing | DCI-P3 93% colour gamut | Gamma Engine | Design: Bezel-less | Screen/Body Ratio = 91.4%. Warranty Information: 1 year comprehensive warranty and additional 1 year on panel provided by the manufacturer from date of purchase.
Televisions

Related Articles

1,031OFF
eCraftIndia Ganesh Deepak with Bell Brass Wall Hanging (11 cm x 8 cm x 24 cm, Brown)

eCraftIndia Ganesh Deepak with Bell Brass Wall Hanging (11 cm x 8 cm x 24 cm, Brown)

968 1,999
1 Brass Ganeshs wall hanging Deepak with bell and Dancing Ganesha. Don't wash, use dry/wet cotton cloth to remove dirt.
Home & Decor

Recent Articles

Recent Quick Read

Recent Great People

32,991OFF
Hisense 139 cm (55 inches) Tornado 2.0 Series 4K Ultra HD Smart LED Google TV 55A7H (Silver)

Hisense 139 cm (55 inches) Tornado 2.0 Series 4K Ultra HD Smart LED Google TV 55A7H (Silver)

36,999 69,990
Resolution : 4K Ultra HD (3840x2160) | Refresh Rate : 60 Hertz | 178 Degree wide viewing angle. Connectivity: 3 HDMI ports to connect set top box, Blu Ray players, gaming console (HDMI 1 eARC supported) | 2 USB ports to connect hard drives and other USB devices | Dual-band Wi-Fi | Bluetooth 5.1. Sound : 102 Watts Output | JBL 6 Speakers System | Dolby Atmos for remarkable sound quality. Smart TV features: Google TV with Watchlist | Google Play Store | Google Assistant | Chromecast, Miracast, DLNA, Airplay | Auto Low Latency Mode for VRR | Supported Apps : Netflix, Youtube, Prime Video, Hotstar, SonyLiv, Hungama, JioCinema, Zee5, Eros Now. Display :10 bit Panel | Bezel-less Floating Display Design | ALLM | Decoding of Dolby Vision, HDR10, HLG | 1 Billion Colours | MEMC. Warranty Information: 2 Year Comprehensive Warranty on product provided by Hisense from date of purchase.. Installation: For requesting installation/wall mounting/demo of this product once delivered, please directly call Hisense Support for assistance (Please visit Hisense Website for Toll Free Numbers) and provide product's model name and seller's details mentioned on your invoice. The service center will allot you a convenient slot for the service. Easy Returns: This product is eligible for replacement within 10 days of delivery in case of any product defects, damage or features not matching the description.
Televisions
26,991OFF
Hisense 139 cm (55 inches) Bezelless Series 4K Ultra HD Smart LED Google TV 55A6H (Black)

Hisense 139 cm (55 inches) Bezelless Series 4K Ultra HD Smart LED Google TV 55A6H (Black)

32,999 59,990
Resolution : 4K Ultra HD (3840x2160) | Refresh Rate : 60 Hertz | 178 Degree wide viewing angle. Connectivity: 3 HDMI ports to connect set top box, Blu Ray players, gaming console | 2 USB ports to connect hard drives and other USB devices | Dual-band Wi-Fi | Bluetooth 5.1. Sound : 24 Watts Output | Dolby Atmos | Dolby Digital. Smart TV features: Google TV | Watchlist | Google Assistant | Far Field Vioce Control | Chromecast, Miracast, DLNA | Auto Low Latency Mode for VRR | Supported Apps : Netflix, Youtube, Prime Video, Hotstar, SonyLiv, Hungama, JioCinema, Zee5, Eros Now. Display :10 bit Panel | Bezel-less Floating Display Design | ALLM | Decoding of Dolby Vision, HDR10, HLG | 1 Billion Colours | MEMC.
Televisions
350OFF
Amazon Brand - Solimo Slim Stainless Steel Water Bottle, Set of 3, 1 L Each

Amazon Brand - Solimo Slim Stainless Steel Water Bottle, Set of 3, 1 L Each

649 999
Stainless Steel water bottle set for home and office use. Made using high quality stainless steel for added durability and long life. Made from 100% food grade materials to be safe for everyday usage. Features a spill-proof design; has a snug fitting lid for easy usage and prevention of leaks. Ergonomic design for comfortable grip and rust free body. Ideal for storing water, iced tea, juices, shakes and more. Dimensions: L x W x H: 7.3 x 7.3 x 26 cm. Package Contents:- Solimo Stainless Steel Water Bottle Set of 3, Weight: 200 gm each, Colour: Silver, Capacity: 1 litre each.
Kitchen & Dining
1,272OFF
Bajaj Rex 500W Mixer Grinder, Purple

Bajaj Rex 500W Mixer Grinder, Purple

2,278 3,550
Wattage : 500 W, Voltage: 230V~50 Hz: Revolution: 20,000 RPM. Powerful 500W Titan Motor with Radio Knob: Easy selection of Speed. 2-in-1 Blade: The dry grinding jar can be used for dry and chutney grinding both. Product warranty by Bajaj - 2 Years. T&C Applied. Pulse Mode: Used for mixing and grinding without stopping your mixie. Perfect to mince chicken , get bread crumps, small puree and making lump free gravies.
Kitchen Appliances
We Need Your Consent
By clicking “Accept Cookies”, you agree to the storing of cookies on your device to enhance your site navigation experience.
I Accept Cookies