Best Cucumber Common Library code snippet using TableRow
first_or_all_responses_table.php
Source:first_or_all_responses_table.php
1<?php2// This file is part of Moodle - http://moodle.org/3//4// Moodle is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.8//9// Moodle is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.13//14// You should have received a copy of the GNU General Public License15// along with Moodle. If not, see <http://www.gnu.org/licenses/>.16/**17 * This file defines the quiz responses table for showing first or all tries at a question.18 *19 * @package quiz_responses20 * @copyright 2014 The Open University21 * @author Jamie Pratt <me@jamiep.org>22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later23 */24defined('MOODLE_INTERNAL') || die();25/**26 * This is a table subclass for displaying the quiz responses report, showing first or all tries.27 *28 * @package quiz_responses29 * @copyright 2014 The Open University30 * @author Jamie Pratt <me@jamiep.org>31 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later32 */33class quiz_first_or_all_responses_table extends quiz_last_responses_table {34 /**35 * The full question usage object for each try shown in report.36 *37 * @var question_usage_by_activity[]38 */39 protected $questionusagesbyactivity;40 protected function field_from_extra_data($tablerow, $slot, $field) {41 $questionattempt = $this->get_question_attempt($tablerow->usageid, $slot);42 switch($field) {43 case 'questionsummary' :44 return $questionattempt->get_question_summary();45 case 'responsesummary' :46 return $this->get_summary_after_try($tablerow, $slot);47 case 'rightanswer' :48 return $questionattempt->get_right_answer_summary();49 default :50 throw new coding_exception('Unknown question attempt field.');51 }52 }53 protected function load_extra_data() {54 if (count($this->rawdata) === 0) {55 return;56 }57 $qubaids = $this->get_qubaids_condition();58 $dm = new question_engine_data_mapper();59 $this->questionusagesbyactivity = $dm->load_questions_usages_by_activity($qubaids);60 // Insert an extra field in attempt data and extra rows where necessary.61 $newrawdata = array();62 foreach ($this->rawdata as $attempt) {63 if (!isset($this->questionusagesbyactivity[$attempt->usageid])) {64 // This is a user without attempts.65 $attempt->try = 0;66 $attempt->lasttryforallparts = true;67 $newrawdata[] = $attempt;68 continue;69 }70 // We have an attempt, which may require several rows.71 $maxtriesinanyslot = 1;72 foreach ($this->questionusagesbyactivity[$attempt->usageid]->get_slots() as $slot) {73 $tries = $this->get_no_of_tries($attempt, $slot);74 $maxtriesinanyslot = max($maxtriesinanyslot, $tries);75 }76 for ($try = 1; $try <= $maxtriesinanyslot; $try++) {77 $newtablerow = clone($attempt);78 $newtablerow->lasttryforallparts = ($try == $maxtriesinanyslot);79 if ($try !== $maxtriesinanyslot) {80 $newtablerow->state = quiz_attempt::IN_PROGRESS;81 }82 $newtablerow->try = $try;83 $newrawdata[] = $newtablerow;84 if ($this->options->whichtries == question_attempt::FIRST_TRY) {85 break;86 }87 }88 }89 $this->rawdata = $newrawdata;90 }91 /**92 * Return the question attempt object.93 *94 * @param int $questionusagesid95 * @param int $slot96 * @return question_attempt97 */98 protected function get_question_attempt($questionusagesid, $slot) {99 return $this->questionusagesbyactivity[$questionusagesid]->get_question_attempt($slot);100 }101 /**102 * Find the state for $slot given after this try.103 *104 * @param object $tablerow row data105 * @param int $slot Slot number.106 * @return question_state The question state after the attempt.107 */108 protected function slot_state($tablerow, $slot) {109 $qa = $this->get_question_attempt($tablerow->usageid, $slot);110 $submissionsteps = $qa->get_steps_with_submitted_response_iterator();111 $step = $submissionsteps[$tablerow->try];112 if ($step === null) {113 return null;114 }115 if ($this->is_last_try($tablerow, $slot, $tablerow->try)) {116 // If this is the last try then the step with the try data does not contain the correct state. We need to117 // use the last step's state, after the attempt has been finished.118 return $qa->get_state();119 }120 return $step->get_state();121 }122 /**123 * Get the summary of the response after the try.124 *125 * @param object $tablerow row data126 * @param int $slot Slot number.127 * @return string summary for the question after this try.128 */129 public function get_summary_after_try($tablerow, $slot) {130 $qa = $this->get_question_attempt($tablerow->usageid, $slot);131 if (!($qa->get_question(false) instanceof question_manually_gradable)) {132 // No responses, and we cannot call summarise_response below.133 return null;134 }135 $submissionsteps = $qa->get_steps_with_submitted_response_iterator();136 $step = $submissionsteps[$tablerow->try];137 if ($step === null) {138 return null;139 }140 $qtdata = $step->get_qt_data();141 return $qa->get_question()->summarise_response($qtdata);142 }143 /**144 * Has this question usage been flagged?145 *146 * @param int $questionusageid Question usage id.147 * @param int $slot Slot number148 * @return bool Has it been flagged?149 */150 protected function is_flagged($questionusageid, $slot) {151 return $this->get_question_attempt($questionusageid, $slot)->is_flagged();152 }153 /**154 * The grade for this slot after this try.155 *156 * @param object $tablerow attempt data from db.157 * @param int $slot Slot number.158 * @return float The fraction.159 */160 protected function slot_fraction($tablerow, $slot) {161 $qa = $this->get_question_attempt($tablerow->usageid, $slot);162 $submissionsteps = $qa->get_steps_with_submitted_response_iterator();163 $step = $submissionsteps[$tablerow->try];164 if ($step === null) {165 return null;166 }167 if ($this->is_last_try($tablerow, $slot, $tablerow->try)) {168 // If this is the last try then the step with the try data does not contain the correct fraction. We need to169 // use the last step's fraction, after the attempt has been finished.170 return $qa->get_fraction();171 }172 return $step->get_fraction();173 }174 /**175 * Is this the last try in the question attempt?176 *177 * @param object $tablerow attempt data from db.178 * @param int $slot Slot number179 * @param int $tryno try no180 * @return bool Is it the last try?181 */182 protected function is_last_try($tablerow, $slot, $tryno) {183 return $tryno == $this->get_no_of_tries($tablerow, $slot);184 }185 /**186 * How many tries were attempted at this question in this slot, during this usage?187 *188 * @param object $tablerow attempt data from db.189 * @param int $slot Slot number190 * @return int the number of tries in the question attempt for slot $slot.191 */192 public function get_no_of_tries($tablerow, $slot) {193 return count($this->get_question_attempt($tablerow->usageid, $slot)->get_steps_with_submitted_response_iterator());194 }195 /**196 * What is the step no this try was seen in?197 *198 * @param int $questionusageid The question usage id.199 * @param int $slot Slot number200 * @param int $tryno Try no201 * @return int the step no or zero if not found202 */203 protected function step_no_for_try($questionusageid, $slot, $tryno) {204 $qa = $this->get_question_attempt($questionusageid, $slot);205 return $qa->get_steps_with_submitted_response_iterator()->step_no_for_try($tryno);206 }207 public function col_checkbox($tablerow) {208 if ($tablerow->try != 1) {209 return '';210 } else {211 return parent::col_checkbox($tablerow);212 }213 }214 /**215 * Cell value function for email column. This extracts the contents for any cell in the email column from the row data.216 *217 * @param object $tablerow Row data.218 * @return string What to put in the cell for this column, for this row data.219 */220 public function col_email($tablerow) {221 if ($tablerow->try > 1) {222 return '';223 } else {224 return $tablerow->email;225 }226 }227 /**228 * Cell value function for sumgrades column. This extracts the contents for any cell in the sumgrades column from the row data.229 *230 * @param object $tablerow Row data.231 * @return string What to put in the cell for this column, for this row data.232 */233 public function col_sumgrades($tablerow) {234 if ($tablerow->try == 0) {235 // We are showing a user without a quiz attempt.236 return '-';237 } else if (!$tablerow->lasttryforallparts) {238 // There are more rows to come for this quiz attempt, so we will show this later.239 return '';240 } else {241 // Last row for this attempt. Now is the time to show attempt-related data.242 return parent::col_sumgrades($tablerow);243 }244 }245 public function col_state($tablerow) {246 if ($tablerow->try == 0) {247 // We are showing a user without a quiz attempt.248 return '-';249 } else if (!$tablerow->lasttryforallparts) {250 // There are more rows to come for this quiz attempt, so we will show this later.251 return '';252 } else {253 // Last row for this attempt. Now is the time to show attempt-related data.254 return parent::col_state($tablerow);255 }256 }257 public function get_row_class($tablerow) {258 if ($this->options->whichtries == question_attempt::ALL_TRIES && $tablerow->lasttryforallparts) {259 return 'lastrowforattempt';260 } else {261 return '';262 }263 }264 public function make_review_link($data, $tablerow, $slot) {265 if ($this->slot_state($tablerow, $slot) === null) {266 return $data;267 } else {268 return parent::make_review_link($data, $tablerow, $slot);269 }270 }271}...
TableRow
Using AI Code Generation
1require_once 'Cucumber/Common/Table.php';2$table = new Cucumber_Common_Table();3$table->addRow(array('1', '2', '3'));4$table->addRow(array('4', '5', '6'));5$table->addRow(array('7', '8', '9'));6$table->save('table.txt');7require_once 'Cucumber/Common/Table.php';8$table = Cucumber_Common_Table::load('table.txt');9$row = $table->getRow(1);10echo $row->getCell(0);11require_once 'Cucumber/Common/Table.php';12$table = Cucumber_Common_Table::load('table.txt');13$row = $table->getRow(1);14$row->setCell(0, '10');15$table->save('table.txt');16require_once 'Cucumber/Common/Table.php';17$table = Cucumber_Common_Table::load('table.txt');18$row = $table->getRow(1);19$row->removeCell(0);20$table->save('table.txt');21require_once 'Cucumber/Common/Table.php';22$table = Cucumber_Common_Table::load('table.txt');23$row = $table->getRow(1);24$table->removeRow($row);25$table->save('table.txt');26require_once 'Cucumber/Common/Table.php';27$table = Cucumber_Common_Table::load('table.txt');
TableRow
Using AI Code Generation
1include_once 'TableRow.php';2include_once 'CucumberCommon.php';3$objTableRow = new TableRow();4$objCucumberCommon = new CucumberCommon();5$tableName = $objCucumberCommon->getTableName();6$arrColumnNames = $objCucumberCommon->getColumnNames();7$arrColumnValues = $objCucumberCommon->getColumnValues();8$whereClause = $objCucumberCommon->getWhereClause();9$beforeInsertCount = $objTableRow->getTableRowCount($tableName);10$objTableRow->insertTableRow($tableName, $arrColumnNames, $arrColumnValues);11$afterInsertCount = $objTableRow->getTableRowCount($tableName);12if($afterInsertCount == ($beforeInsertCount + 1))13{14 echo "TableRowInsertionSuccess";15}16{17 echo "TableRowInsertionFailure";18}19include_once 'TableRow.php';20include_once 'CucumberCommon.php';21$objTableRow = new TableRow();22$objCucumberCommon = new CucumberCommon();23$tableName = $objCucumberCommon->getTableName();24$arrColumnNames = $objCucumberCommon->getColumnNames();25$arrColumnValues = $objCucumberCommon->getColumnValues();26$whereClause = $objCucumberCommon->getWhereClause();27$beforeUpdateCount = $objTableRow->getTableRowCount($tableName);28$objTableRow->updateTableRow($tableName, $arrColumnNames, $arrColumnValues, $whereClause);
TableRow
Using AI Code Generation
1require_once 'Cucumber/TableRow.php';2$tr = new Cucumber_TableRow();3$tr->setTable($table);4$tr->addRow();5$tr->addCell("Cell 1");6$tr->addCell("Cell 2");7$tr->addCell("Cell 3");8$tr->addCell("Cell 4");9$tr->addCell("Cell 5");10$tr->addRow();11$tr->addCell("Cell 6");12$tr->addCell("Cell 7");13$tr->addCell("Cell 8");14$tr->addCell("Cell 9");15$tr->addCell("Cell 10");16$tr->addRow();17$tr->addCell("Cell 11");18$tr->addCell("Cell 12");19$tr->addCell("Cell 13");20$tr->addCell("Cell 14");21$tr->addCell("Cell 15");22$tr->addRow();23$tr->addCell("Cell 16");24$tr->addCell("Cell 17");25$tr->addCell("Cell 18");26$tr->addCell("Cell 19");27$tr->addCell("Cell 20");28$tr->addRow();29$tr->addCell("Cell 21");30$tr->addCell("Cell 22");31$tr->addCell("Cell 23");32$tr->addCell("Cell 24");33$tr->addCell("Cell 25");34$tr->addRow();35$tr->addCell("Cell 26");36$tr->addCell("Cell 27");37$tr->addCell("Cell 28");38$tr->addCell("Cell 29");39$tr->addCell("Cell 30");40$tr->addRow();41$tr->addCell("Cell 31");42$tr->addCell("Cell 32");43$tr->addCell("Cell 33");44$tr->addCell("Cell 34");45$tr->addCell("Cell 35");46$tr->addRow();47$tr->addCell("Cell 36");48$tr->addCell("Cell 37");49$tr->addCell("Cell 38");50$tr->addCell("Cell 39");51$tr->addCell("Cell 40");52$tr->addRow();53$tr->addCell("Cell 41");54$tr->addCell("Cell 42
TableRow
Using AI Code Generation
1require_once('cucumber.php');2$obj = new TableRow('2.php');3$obj->setTable('table1');4$obj->setRow('row1');5$obj->setColumn('column1');6$obj->setValue('value1');7$obj->execute();8require_once('cucumber.php');9$obj = new TableRow('2.php');10$obj->setTable('table1');11$obj->setRow('row2');12$obj->setColumn('column1');13$obj->setValue('value3');14$obj->execute();
TableRow
Using AI Code Generation
1include_once('CucumberCommonLibrary.php');2$tr = new CucumberCommonLibrary\TableRow();3$tableRows = $tr->getTableRowArray();4print_r($tableRows[0]);5print_r($tableRows[1]);6print_r($tableRows[2]);7include_once('CucumberCommonLibrary.php');8$tr = new CucumberCommonLibrary\TableRow();9$tableRows = $tr->getTableRowArray();10print_r($tableRows[0]);11print_r($tableRows[1]);12print_r($tableRows[2]);13include_once('CucumberCommonLibrary.php');14$tr = new CucumberCommonLibrary\TableRow();15$tableRows = $tr->getTableRowArray();16print_r($tableRows[0]);17print_r($tableRows[1]);18print_r($tableRows[2]);19include_once('CucumberCommonLibrary.php');20$tr = new CucumberCommonLibrary\TableRow();21$tableRows = $tr->getTableRowArray();22print_r($tableRows[0]);23print_r($tableRows[1]);24print_r($tableRows[2]);
TableRow
Using AI Code Generation
1require_once('CucumberCommon.php');2$tableRow = new TableRow();3$tableRow->getDataFromTable("table1", "row1");4require_once('CucumberCommon.php');5$tableRow = new TableRow();6$tableRow->getDataFromTable("table1", "row2");7require_once('CucumberCommon.php');8$tableRow = new TableRow();9$tableRow->getDataFromTable("table1", "row3");10require_once('CucumberCommon.php');11$tableRow = new TableRow();12$tableRow->getDataFromTable("table1", "row4");13require_once('CucumberCommon.php');14$tableRow = new TableRow();15$tableRow->getDataFromTable("table1", "row5");16require_once('CucumberCommon.php');17$tableRow = new TableRow();18$tableRow->getDataFromTable("table1", "row6");19require_once('CucumberCommon.php');20$tableRow = new TableRow();21$tableRow->getDataFromTable("table1", "row7");22require_once('CucumberCommon.php');23$tableRow = new TableRow();24$tableRow->getDataFromTable("table1", "row8");25require_once('
TableRow
Using AI Code Generation
1$myTable = new TableRow();2$myTable->getTableData("table1");3$myTable->printTableData();4public function getTableData($tableId){5 $tableRows = $table->elements('xpath', 'tr');6 $rowIndex = 0;7 foreach ($tableRows as $tableRow){8 $tableColumns = $tableRow->elements('xpath', 'td');9 $columnIndex = 0;10 foreach ($tableColumns as $tableColumn){11 $this->tableData[$rowIndex][$columnIndex] = $tableColumn->text();12 $columnIndex++;13 }14 $rowIndex++;15 }16}17public function printTableData(){18 $rowIndex = 0;19 foreach ($this->tableData as $tableRow){20 $columnIndex = 0;21 foreach ($tableRow as $tableColumn){22 echo $this->tableData[$rowIndex][$columnIndex]." ";23 $columnIndex++;24 }25 $rowIndex++;26";27 }28}
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Trigger Selenium automation tests on a cloud-based Grid of 3000+ real browsers and operating systems.
Test now for FreeGet 100 minutes of automation test minutes FREE!!