Example #1
0
 public function testCheckboxGroup()
 {
     // Setup some country codes, and whether they should be checked.
     $countries = ['US' => false, 'GB' => true, 'FR' => true];
     $form = new Form();
     $countryCheckboxes = $form->addCheckboxGroup('countries');
     foreach ($countries as $code => $checked) {
         $countryCheckboxes->addCheckbox()->setValue($code);
     }
     try {
         $form->populate(['countries' => 'US']);
         $this->fail('Should complain that CheckboxGroup does not accept a string');
     } catch (\InvalidArgumentException $e) {
         // Works as expected!
     }
     $this->assertTrue($form->populate(['countries' => array_keys($countries, true)])->isValid());
     foreach ($countryCheckboxes->getElements() as $checkbox) {
         $shouldBeChecked = $countries[$checkbox->getValue()];
         $this->assertEquals($checkbox->isChecked(), $shouldBeChecked);
     }
 }