public static function renderFormInteriorForNewSpecimen($unique_str, $db_connection)
 {
     $s = Specimen::createNewSpecimenForNotebookPage(0, $db_connection);
     $s->specimen_id = $unique_str;
     $rendered = '<h3><input type="text" name="specimen-name_' . $s->specimen_id . '" id="specimen-name_' . $s->specimen_id . '" value="' . htmlentities($s->name) . '"/></h3>' . "\n" . '<ul class="base-info">' . "\n" . '  <li><div class="field-label">' . util_lang('coordinates') . '</div> : <div class="field-value"><input type="text" name="specimen-gps_longitude_' . $s->specimen_id . '" id="specimen-gps_longitude_' . $s->specimen_id . '" value="' . htmlentities($s->gps_longitude) . '"/>, <input type="text" name="specimen-gps_latitude_' . $s->specimen_id . '" id="specimen-gps_latitude_' . $s->specimen_id . '" value="' . htmlentities($s->gps_latitude) . '"/></div></li>' . "\n" . '  <li><div class="field-label">' . util_lang('notes') . '</div> : <div class="field-value"><textarea name="specimen-notes_' . $s->specimen_id . '" id="specimen-notes_' . $s->specimen_id . '" class="specimen-notes" row="4" cols="120">' . htmlentities($s->notes) . '</textarea></div></li>' . "\n" . '  <li><div class="field-label">' . util_lang('catalog_identifier') . '</div> : <div class="field-value"><input type="text" name="specimen-catalog_identifier_' . $s->specimen_id . '" id="specimen-catalog_identifier_' . $s->specimen_id . '" value="' . htmlentities($s->catalog_identifier) . '"/></div></li>' . "\n" . '  <li><b><i>' . util_lang('msg_save_page_before_image_upload', 'ucfirst') . '</i></b></li>' . "\n" . '</ul>';
     return $rendered;
 }
        }
        $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';
                    $new_s->updateDb();
                }
            }
        }
    }
    $action = 'view';
}
echo '<script src="' . APP_ROOT_PATH . '/js/notebook_page_general.js"></script>' . "\n";
if ($action == 'view') {
    if ($USER->canActOnTarget($ACTIONS['edit'], $notebook_page)) {
        echo '<div id="actions">' . $notebook_page->renderAsButtonEdit() . '</div>' . "\n";
 function testRenderFormInteriorForNewSpecimen()
 {
     global $USER;
     $USER = User::getOneFromDb(['username' => TESTINGUSER], $this->DB);
     $unique_str = 'XYZ789';
     $s = Specimen::createNewSpecimenForNotebookPage(0, $this->DB);
     $s->specimen_id = $unique_str;
     $canonical = '<h3><input type="text" name="specimen-name_' . $s->specimen_id . '" id="specimen-name_' . $s->specimen_id . '" value="' . htmlentities($s->name) . '"/></h3>' . "\n" . '<ul class="base-info">' . "\n" . '  <li><div class="field-label">' . util_lang('coordinates') . '</div> : <div class="field-value"><input type="text" name="specimen-gps_longitude_' . $s->specimen_id . '" id="specimen-gps_longitude_' . $s->specimen_id . '" value="' . htmlentities($s->gps_longitude) . '"/>, <input type="text" name="specimen-gps_latitude_' . $s->specimen_id . '" id="specimen-gps_latitude_' . $s->specimen_id . '" value="' . htmlentities($s->gps_latitude) . '"/></div></li>' . "\n" . '  <li><div class="field-label">' . util_lang('notes') . '</div> : <div class="field-value"><textarea name="specimen-notes_' . $s->specimen_id . '" id="specimen-notes_' . $s->specimen_id . '" class="specimen-notes" row="4" cols="120">' . htmlentities($s->notes) . '</textarea></div></li>' . "\n" . '  <li><div class="field-label">' . util_lang('catalog_identifier') . '</div> : <div class="field-value"><input type="text" name="specimen-catalog_identifier_' . $s->specimen_id . '" id="specimen-catalog_identifier_' . $s->specimen_id . '" value="' . htmlentities($s->catalog_identifier) . '"/></div></li>' . "\n" . '  <li><b><i>' . util_lang('msg_save_page_before_image_upload', 'ucfirst') . '</i></b></li>' . "\n" . '</ul>';
     $rendered = Specimen::renderFormInteriorForNewSpecimen($unique_str, $this->DB);
     //            echo "<pre>\n".htmlentities($canonical)."\n------------------\n".htmlentities($rendered)."\n</pre>";
     //            echo "<pre>-----------\n";
     //            $ch_c = substr($canonical,125,1);
     //            $ch_r = substr($rendered,125,1);
     //            echo $ch_c . '('.ord($ch_c).'):' . $ch_r.'('.ord($ch_r).')';
     //            echo "\n-----------\n";
     //            echo "</pre>";
     $this->assertEqual($canonical, $rendered);
     $this->assertNoPattern('/IMPLEMENTED/', $rendered);
 }