コード例 #1
0
         //                    util_prePrintR("handling $deleted_specimen_id\n");
         if ($deleted_specimen_id) {
             //                        util_prePrintR("fetching for delete $deleted_specimen_id\n");
             $del_s = Specimen::getOneFromDb(['specimen_id' => $deleted_specimen_id], $DB);
             if ($del_s->matchesDb) {
                 //                            util_prePrintR("doing delete $deleted_specimen_id\n");
                 $del_s->doDelete();
                 //                            util_prePrintR("complete delete $deleted_specimen_id\n");
             }
         }
     }
 }
 $intitial_specimen_ids = explode(',', $_REQUEST['initial_specimen_ids']);
 foreach ($intitial_specimen_ids as $specimen_id) {
     if (!in_array($specimen_id, $deleted_specimen_ids)) {
         $s = Specimen::getOneFromDb(['specimen_id' => $specimen_id], $DB);
         if ($s->matchesDb) {
             $s->setFromArray($_REQUEST);
             $s->updateDb();
         }
     }
 }
 $created_specimen_ids = explode(',', $_REQUEST['created_specimen_ids']);
 foreach ($created_specimen_ids as $created_specimen_id) {
     //            echo "TO BE IMPLEMENTED: handle creation of specimens";
     if ($created_specimen_id) {
         $new_s = Specimen::createNewSpecimenForNotebookPage($notebook_page->notebook_page_id, $DB);
         $new_s->specimen_id = $created_specimen_id;
         $new_s->setFromArray($_REQUEST);
         if ($new_s->name != util_lang('new_specimen_name')) {
             $new_s->specimen_id = 'NEW';
コード例 #2
0
 public function getSpecimen()
 {
     return Specimen::getOneFromDb(['specimen_id' => $this->specimen_id, 'flag_delete' => FALSE], $this->dbConnection);
 }
コード例 #3
0
 function testCanActOnTarget()
 {
     $n1 = Notebook::getOneFromDb(['notebook_id' => 1001], $this->DB);
     // owned by 101
     $n2 = Notebook::getOneFromDb(['notebook_id' => 1003], $this->DB);
     // owned by 102
     $n3 = Notebook::getOneFromDb(['notebook_id' => 1004], $this->DB);
     // owned by 110
     $np1 = Notebook_Page::getOneFromDb(['notebook_page_id' => 1101], $this->DB);
     // part of notebook 101
     $s1 = Specimen::getOneFromDb(['specimen_id' => 8001], $this->DB);
     // owned by 110
     $s2 = Specimen::getOneFromDb(['specimen_id' => 8002], $this->DB);
     // owned by 101
     $mds = Metadata_Structure::getOneFromDb(['metadata_structure_id' => 6004], $this->DB);
     $mdts = Metadata_Term_Set::getOneFromDb(['metadata_term_set_id' => 6101], $this->DB);
     $mdtv = Metadata_Term_Value::getOneFromDb(['metadata_term_value_id' => 6211], $this->DB);
     $ap = Authoritative_Plant::getOneFromDb(['authoritative_plant_id' => 5001], $this->DB);
     $actions_list = Action::getAllFromDb([], $this->DB);
     $actions = [];
     foreach ($actions_list as $act_elt) {
         $actions[$act_elt->name] = $act_elt;
     }
     // basic, field user
     $u = User::getOneFromDb(['user_id' => 101], $this->DB);
     $this->assertTrue($u->canActOnTarget($actions['view'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['create'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $n1));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $n1));
     $this->assertFalse($u->canActOnTarget($actions['view'], $n2));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['create'], $n2));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $n2));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $n2));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['view'], $n3));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['create'], $n3));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $n3));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $n3));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['view'], $np1));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $np1));
     $this->assertTrue($u->canActOnTarget($actions['create'], $np1));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $np1));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $np1));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $np1));
     $this->assertTrue($u->canActOnTarget($actions['view'], $s1));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['create'], $s1));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $s1));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $s1));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['view'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['create'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $s2));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['view'], $mds));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $mds));
     $this->assertFalse($u->canActOnTarget($actions['create'], $mds));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $mds));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $mds));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['view'], $mdts));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $mdts));
     $this->assertFalse($u->canActOnTarget($actions['create'], $mdts));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $mdts));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $mdts));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['view'], $mdtv));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $mdtv));
     $this->assertFalse($u->canActOnTarget($actions['create'], $mdtv));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $mdtv));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $mdtv));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['view'], $ap));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $ap));
     $this->assertFalse($u->canActOnTarget($actions['create'], $ap));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $ap));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $ap));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $ap));
     // basic user on arbitrary object
     $this->assertTrue($u->canActOnTarget($actions['view'], new Authoritative_Plant(['DB' => $this->DB])));
     // system admin
     $u->flag_is_system_admin = true;
     $this->assertTrue($u->canActOnTarget($actions['view'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['create'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['view'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['create'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['view'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['create'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['view'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['create'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['view'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['create'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['view'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['create'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['view'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['create'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['view'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['create'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['view'], $ap));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $ap));
     $this->assertTrue($u->canActOnTarget($actions['create'], $ap));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $ap));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $ap));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $ap));
     // public user
     $u = User::getOneFromDb(['user_id' => 109], $this->DB);
     $this->assertFalse($u->canActOnTarget($actions['view'], $n1));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $n1));
     $this->assertFalse($u->canActOnTarget($actions['create'], $n1));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $n1));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $n1));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $n1));
     $this->assertFalse($u->canActOnTarget($actions['view'], $n2));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $n2));
     $this->assertFalse($u->canActOnTarget($actions['create'], $n2));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $n2));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $n2));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['view'], $n3));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $n3));
     $this->assertFalse($u->canActOnTarget($actions['create'], $n3));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $n3));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $n3));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['view'], $s1));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $s1));
     $this->assertFalse($u->canActOnTarget($actions['create'], $s1));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $s1));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $s1));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $s1));
     $this->assertFalse($u->canActOnTarget($actions['view'], $s2));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $s2));
     $this->assertFalse($u->canActOnTarget($actions['create'], $s2));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $s2));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $s2));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['view'], $mds));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $mds));
     $this->assertFalse($u->canActOnTarget($actions['create'], $mds));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $mds));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $mds));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['view'], $mdts));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $mdts));
     $this->assertFalse($u->canActOnTarget($actions['create'], $mdts));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $mdts));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $mdts));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['view'], $mdtv));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $mdtv));
     $this->assertFalse($u->canActOnTarget($actions['create'], $mdtv));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $mdtv));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $mdtv));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['view'], $ap));
     $this->assertFalse($u->canActOnTarget($actions['edit'], $ap));
     $this->assertFalse($u->canActOnTarget($actions['create'], $ap));
     $this->assertFalse($u->canActOnTarget($actions['delete'], $ap));
     $this->assertFalse($u->canActOnTarget($actions['publish'], $ap));
     $this->assertFalse($u->canActOnTarget($actions['verify'], $ap));
     // manager
     $u = User::getOneFromDb(['user_id' => 110], $this->DB);
     // manager user
     $this->assertTrue($u->canActOnTarget($actions['view'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['create'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $n1));
     $this->assertTrue($u->canActOnTarget($actions['view'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['create'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $n2));
     $this->assertTrue($u->canActOnTarget($actions['view'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['create'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $n3));
     $this->assertTrue($u->canActOnTarget($actions['view'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['create'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $s1));
     $this->assertTrue($u->canActOnTarget($actions['view'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['create'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $s2));
     $this->assertTrue($u->canActOnTarget($actions['view'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['create'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $mds));
     $this->assertTrue($u->canActOnTarget($actions['view'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['create'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $mdts));
     $this->assertTrue($u->canActOnTarget($actions['view'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['create'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $mdtv));
     $this->assertTrue($u->canActOnTarget($actions['view'], $ap));
     $this->assertTrue($u->canActOnTarget($actions['edit'], $ap));
     $this->assertTrue($u->canActOnTarget($actions['create'], $ap));
     $this->assertTrue($u->canActOnTarget($actions['delete'], $ap));
     $this->assertTrue($u->canActOnTarget($actions['publish'], $ap));
     $this->assertTrue($u->canActOnTarget($actions['verify'], $ap));
 }
コード例 #4
0
         $new_ape->notebook_page_field_id = $created_authoritative_plant_extra_id;
         $new_ape->setFromArray($_REQUEST);
         if ($new_ape->value != false) {
             $new_ape->authoritative_plant_extra_id = 'NEW';
             $new_ape->updateDb();
         }
     }
 }
 /////////////////////
 // third, any specimens
 // deleted
 $deleted_specimen_ids = explode(',', $_REQUEST['deleted_specimen_ids']);
 if ($deleted_specimen_ids) {
     foreach ($deleted_specimen_ids as $deleted_specimen_id) {
         if ($deleted_specimen_id) {
             $del_s = Specimen::getOneFromDb(['specimen_id' => $deleted_specimen_id], $DB);
             if ($del_s->matchesDb) {
                 $del_s->doDelete();
             }
         }
     }
 }
 // altered
 $ap->cacheSpecimens();
 foreach ($ap->specimens as $db_specimen) {
     $db_specimen->setFromArray($_REQUEST);
     $db_specimen->updateDb();
 }
 // created
 $created_specimen_ids = explode(',', $_REQUEST['created_specimen_ids']);
 foreach ($created_specimen_ids as $created_specimen_id) {
コード例 #5
0
 function testBaseDataUpdate()
 {
     $this->doLoginBasic();
     $this->get('http://localhost/digitalfieldnotebooks/app_code/notebook_page.php?action=edit&notebook_page_id=1101');
     $this->checkBasicAsserts();
     $new_notes = 'new notes for the page';
     $new_specimen_notes = 'new notes for the specimen';
     ////      NOTE: the identifier to use for setField is the value of the name attribute of the field
     $this->setField('notes', $new_notes);
     // page field alteration
     $this->assertTrue($this->setField('page_field_select_1201', '6204'));
     $this->assertTrue($this->setField('page_field_open_value_1204', 'new open value'));
     // page field addition
     //        $this->todo('figure out how to do page field addition');
     //        $this->todo('figure out how to do page deletion');
     // specimen alteration
     $this->assertTrue($this->setField('specimen-notes_8002', $new_specimen_notes));
     //        $this->todo('figure out how to do specimen addition');
     //        $this->todo('figure out how to do specimen deletion');
     //        $this->showContent();
     ////        NOTE: the identifier to use for buttons is the value of the value attribute of the button
     $this->click('<i class="icon-ok-sign icon-white"></i> ' . util_lang('update', 'properize'));
     //
     //        $this->showContent();
     //
     $this->checkBasicAsserts();
     $this->assertText($new_notes);
     //
     $np = Notebook_Page::getOneFromDb(['notebook_page_id' => 1101], $this->DB);
     $this->assertEqual($np->notes, $new_notes);
     //        $this->todo('check page field alteration on 1201');
     $npf = Notebook_Page_Field::getOneFromDb(['notebook_page_field_id' => 1201], $this->DB);
     $this->assertEqual($npf->value_metadata_term_value_id, 6204);
     $npf = Notebook_Page_Field::getOneFromDb(['notebook_page_field_id' => 1204], $this->DB);
     $this->assertEqual($npf->value_open, 'new open value');
     //        $this->todo('check page field addition');
     //        $this->todo('check page field deletion');
     //        $this->todo('check specimen alteration on 8002');
     $s = Specimen::getOneFromDb(['specimen_id' => 8002], $this->DB);
     $this->assertEqual($s->notes, $new_specimen_notes);
     //        $this->todo('check specimen addition');
     //        $this->todo('check specimen deletion');
     //        util_prePrintR(htmlentities($this->getBrowser()->getContent()));
     echo "<br><b>NOTE: skipping create and delete tests for pagefields and specimens because that requires javascript interaction</b><br/>\n";
 }
コード例 #6
0
 function testDoDelete()
 {
     $np = Notebook_Page::getOneFromDb(['notebook_page_id' => 1101], $this->DB);
     $np->loadSpecimens();
     $np->loadPageFields();
     $this->assertTrue($np->matchesDb);
     $this->assertTrue($np->page_fields[0]->matchesDb);
     $this->assertTrue($np->page_fields[1]->matchesDb);
     $this->assertTrue($np->page_fields[2]->matchesDb);
     $this->assertTrue($np->page_fields[3]->matchesDb);
     $this->assertTrue($np->specimens[0]->matchesDb);
     $this->assertTrue($np->specimens[1]->matchesDb);
     //***********
     $np->doDelete();
     //***********
     $np2 = Notebook_Page::createNewNotebookPageForNotebook(1001, $this->DB);
     $this->assertFalse($np2->matchesDb);
     $npf = Notebook_Page_Field::getOneFromDb(['notebook_page_field_id' => 1201], $this->DB);
     $this->assertFalse($npf->matchesDb);
     $npf = Notebook_Page_Field::getOneFromDb(['notebook_page_field_id' => 1202], $this->DB);
     $this->assertFalse($npf->matchesDb);
     $npf = Notebook_Page_Field::getOneFromDb(['notebook_page_field_id' => 1203], $this->DB);
     $this->assertFalse($npf->matchesDb);
     $npf = Notebook_Page_Field::getOneFromDb(['notebook_page_field_id' => 1204], $this->DB);
     $this->assertFalse($npf->matchesDb);
     $s = Specimen::getOneFromDb(['specimen_id' => 8002], $this->DB);
     $this->assertFalse($s->matchesDb);
     $s = Specimen::getOneFromDb(['specimen_id' => 8003], $this->DB);
     $this->assertFalse($s->matchesDb);
     $si = Specimen_Image::getOneFromDb(['specimen_image_id' => 8103], $this->DB);
     $this->assertFalse($si->matchesDb);
     $si = Specimen_Image::getOneFromDb(['specimen_image_id' => 8104], $this->DB);
     $this->assertFalse($si->matchesDb);
 }
 function testBaseDataUpdate()
 {
     $this->doLoginAdmin();
     $this->get('http://localhost/digitalfieldnotebooks/app_code/authoritative_plant.php?action=edit&authoritative_plant_id=5001');
     $this->checkBasicAsserts();
     ///////////////////////////////
     //// set form fields
     //////      NOTE: the identifier to use for setField is the value of the name attribute of the field
     $this->assertTrue($this->setField('authoritative_plant-class_5001', ''));
     $this->assertTrue($this->setField('authoritative_plant-order_5001', 'neworder'));
     $this->assertTrue($this->setField('authoritative_plant-species_5001', 'newspecies'));
     //        // alter common name
     $this->assertTrue($this->setField('authoritative_plant_extra_5103-value', 'altered common name'));
     //        // alter description
     $this->assertTrue($this->setField('authoritative_plant_extra_5104-value', 'altered description'));
     //        // alter specimen
     $this->assertTrue($this->setField('specimen-name_8001', 'altered specimen name'));
     // JS-driven - can't test here
     //        $this->todo('add new APE');
     //        $this->todo('delete existing APE');
     //
     //        $this->todo('add new specimen');
     //        $this->todo('delete specimen');
     //        $this->showContent();
     //        exit;
     ////        NOTE: the identifier to use for buttons is the value of the value attribute of the button
     ///////////////////////////////
     //// submit the form
     $this->click('<i class="icon-ok-sign icon-white"></i> ' . util_lang('update', 'properize'));
     //        $this->showContent();
     //        exit;
     ////
     ///////////////////////////////
     //// check the resulting page
     $this->checkBasicAsserts();
     $this->assertNoText('class :');
     $this->assertText('neworder');
     $this->assertText('newspecies');
     $this->assertText('altered common name');
     $this->assertText('altered description');
     $this->assertText('altered specimen name');
     // JS-driven - can't test here
     //        $this->todo('web - check add new APE');
     //        $this->todo('web - check delete existing APE');
     //        $this->todo('web - add new specimen');
     //        $this->todo('web - delete specimen');
     ///////////////////////////////
     //// check the db records
     $ap = Authoritative_Plant::getOneFromDb(['authoritative_plant_id' => 5001], $this->DB);
     $this->assertEqual($ap->class, '');
     $this->assertEqual($ap->order, 'neworder');
     $this->assertEqual($ap->genus, 'AP_A_genus');
     $this->assertEqual($ap->species, 'newspecies');
     $apeCN = Authoritative_Plant_Extra::getOneFromDb(['authoritative_plant_extra_id' => 5103], $this->DB);
     $apeDe = Authoritative_Plant_Extra::getOneFromDb(['authoritative_plant_extra_id' => 5104], $this->DB);
     $spec = Specimen::getOneFromDb(['specimen_id' => 8001], $this->DB);
     $this->assertEqual('altered common name', $apeCN->value);
     $this->assertEqual('altered description', $apeDe->value);
     $this->assertEqual('altered specimen name', $spec->name);
     // JS-driven - can't test here
     //        $this->todo('db - check add new APE');
     //        $this->todo('db - check delete existing APE');
     //        $this->todo('db - add new specimen');
     //        $this->todo('db - delete specimen');
 }
コード例 #8
0
 function testDoDelete()
 {
     $s = Specimen::getOneFromDb(['specimen_id' => 8001], $this->DB);
     $s->cacheImages();
     $this->assertTrue($s->matchesDb);
     $this->assertTrue($s->images[0]->matchesDb);
     $this->assertTrue($s->images[1]->matchesDb);
     $s->doDelete();
     $s2 = Specimen::getOneFromDb(['specimen_id' => 8001], $this->DB);
     $this->assertFalse($s2->matchesDb);
     $siA = Specimen_Image::getOneFromDb(['specimen_image_id' => 8101], $this->DB);
     $this->assertFalse($siA->matchesDb);
     $siB = Specimen_Image::getOneFromDb(['specimen_image_id' => 8102], $this->DB);
     $this->assertFalse($siB->matchesDb);
 }
コード例 #9
0
 public function getTargets()
 {
     switch ($this->target_type) {
         case 'global_notebook':
             return Notebook::getAllFromDb([], $this->dbConnection);
             break;
         case 'global_metadata':
             return Metadata_Structure::getAllFromDb([], $this->dbConnection);
             break;
         case 'global_plant':
             return Authoritative_Plant::getAllFromDb([], $this->dbConnection);
             break;
         case 'global_specimen':
             return Specimen::getAllFromDb([], $this->dbConnection);
             break;
         case 'notebook':
             return array(Notebook::getOneFromDb(['notebook_id' => $this->target_id], $this->dbConnection));
             break;
         case 'metadata_structure':
             return array(Metadata_Structure::getOneFromDb(['metadata_structure_id' => $this->target_id], $this->dbConnection));
             break;
         case 'plant':
             return array(Authoritative_Plant::getOneFromDb(['authoritative_id' => $this->target_id], $this->dbConnection));
             break;
         case 'specimen':
             return array(Specimen::getOneFromDb(['specimen_id' => $this->target_id], $this->dbConnection));
             break;
         default:
             return array();
     }
 }