function testOther_developing_proposals_allowed()
 {
     $db_config = new mock_db_configure(3);
     $db_q = array(0 => $this->queries["other_developing_proposals_allowed"]);
     $db_d = $this->_generate_records(array("proid"), 3);
     $rows = $this->_generate_records(array("other_developing_proposals"), 2);
     $db_config->add_query(sprintf($db_q[0], $db_d[0]["proid"]), 0);
     $db_config->add_query(sprintf($db_q[0], $db_d[1]["proid"]), 1);
     $db_config->add_query(sprintf($db_q[0], $db_d[2]["proid"]), 2);
     $rows[0]["other_developing_proposals"] = "No";
     $db_config->add_record($rows[0], 0);
     $this->assertEquals(0, other_developing_proposals_allowed($db_d[0]["proid"]));
     $rows[1]["other_developing_proposals"] = "Yes";
     $db_config->add_record($rows[1], 1);
     $this->assertEquals(1, other_developing_proposals_allowed($db_d[1]["proid"]));
     // no data call, complains about other_developing_proposals
     // not being set, ignore it.
     $db_config->ignore_errors(MKDB_FIELD_SET, 2);
     $this->assertEquals(0, other_developing_proposals_allowed($db_d[2]["proid"]));
     // if using a database, then ensure that it didn't fail
     $this->_check_db($db_config);
 }
 function testPersonal_news_short()
 {
     global $bx;
     $user1 = "fubar";
     $user2 = "snafu";
     $user3 = "fritz";
     $db_config = new mock_db_configure(10);
     $db_q = array(0 => "SELECT * FROM news WHERE user_news='%s'", 1 => "SELECT COUNT(*) FROM comments WHERE proid=" . "'%s' AND type='News' AND ref='%s'", 2 => "SELECT * FROM description WHERE proid='%s'");
     $db_config->add_query(sprintf($db_q[0], $user1), 0);
     $db_config->add_query(sprintf($db_q[0], $user2), 1);
     $db_config->add_query(sprintf($db_q[0], $user3), 4);
     // news_short calls the num_row method twice instead of once
     $db_config->add_num_row(0, 0);
     // fubar generates zero
     $db_config->add_num_row(0, 0);
     // fubar generates zero
     $db_config->add_record(false, 0);
     $db_config->add_num_row(2, 1);
     // snafu generates 2 results
     $db_config->add_num_row(2, 1);
     // snafu generates 2 results
     $db_config->add_num_row(7, 4);
     // fritz generates 7 results
     $db_config->add_num_row(7, 4);
     // fritz generates 7 results
     // instance 4 does not use all of its defined records because
     // news_short only displays the first 5 records, this means that
     // instance four has 2 too many records, ignore that error.
     $db_config->ignore_errors(MKDB_RECORD_COUNT, 4);
     $cols = array('id', 'proid', 'subject_news', 'creation_news');
     $row1 = $this->_generate_array($cols, 1);
     $db_config->add_record($row1, 1);
     $row2 = $this->_generate_array($cols, 2);
     $db_config->add_record($row2, 1);
     $db_config->add_record(false, 1);
     // the 7 records of fritz query
     $row7 = $this->_generate_array($cols, 7);
     $db_config->add_record($row7, 4);
     $row8 = $this->_generate_array($cols, 8);
     $db_config->add_record($row8, 4);
     $row9 = $this->_generate_array($cols, 9);
     $db_config->add_record($row9, 4);
     $row10 = $this->_generate_array($cols, 10);
     $db_config->add_record($row10, 4);
     $row11 = $this->_generate_array($cols, 11);
     $db_config->add_record($row11, 4);
     $row12 = $this->_generate_array($cols, 12);
     $db_config->add_record($row12, 4);
     $row13 = $this->_generate_array($cols, 13);
     $db_config->add_record($row13, 4);
     // third&fourth instances created as part of the snafu query
     $db_config->add_query(sprintf($db_q[1], $row1['proid'], $row1['id']), 2);
     $db_config->add_query(sprintf($db_q[2], $row1['proid']), 2);
     $db_config->add_query(sprintf($db_q[1], $row2['proid'], $row2['id']), 3);
     $db_config->add_query(sprintf($db_q[2], $row2['proid']), 3);
     $row3 = array('COUNT(*)' => 'count star value row3');
     $db_config->add_record($row3, 2);
     $row4 = array('proid' => 'project_id_row4', 'project_title' => 'project title row4');
     $db_config->add_record($row4, 2);
     $row5 = array('COUNT(*)' => 'count star value row5');
     $db_config->add_record($row5, 3);
     $row6 = array('proid' => 'project_id_row6', 'project_title' => 'project title row6');
     $db_config->add_record($row6, 3);
     // fritz sub-queries
     $db_config->add_query(sprintf($db_q[1], $row7['proid'], $row7['id']), 5);
     $db_config->add_query(sprintf($db_q[2], $row7['proid']), 5);
     $db_config->add_query(sprintf($db_q[1], $row8['proid'], $row8['id']), 6);
     $db_config->add_query(sprintf($db_q[2], $row8['proid']), 6);
     $db_config->add_query(sprintf($db_q[1], $row9['proid'], $row9['id']), 7);
     $db_config->add_query(sprintf($db_q[2], $row9['proid']), 7);
     $db_config->add_query(sprintf($db_q[1], $row10['proid'], $row10['id']), 8);
     $db_config->add_query(sprintf($db_q[2], $row10['proid']), 8);
     $db_config->add_query(sprintf($db_q[1], $row11['proid'], $row11['id']), 9);
     $db_config->add_query(sprintf($db_q[2], $row11['proid']), 9);
     $db_config->add_query(sprintf($db_q[1], $row12['proid'], $row12['id']), 10);
     $db_config->add_query(sprintf($db_q[2], $row12['proid']), 10);
     $db_config->add_query(sprintf($db_q[1], $row13['proid'], $row13['id']), 11);
     $db_config->add_query(sprintf($db_q[2], $row13['proid']), 11);
     $row14 = array('COUNT(*)' => 'count star value row14');
     $db_config->add_record($row14, 5);
     $row15 = array('proid' => 'project_id_row15', 'project_title' => 'project title row15');
     $db_config->add_record($row15, 5);
     $row16 = array('COUNT(*)' => 'count star value row16');
     $db_config->add_record($row16, 6);
     $row17 = array('proid' => 'project_id_row17', 'project_title' => 'project title row17');
     $db_config->add_record($row17, 6);
     $row18 = array('COUNT(*)' => 'count star value row18');
     $db_config->add_record($row18, 7);
     $row19 = array('proid' => 'project_id_row19', 'project_title' => 'project title row19');
     $db_config->add_record($row19, 7);
     $row20 = array('COUNT(*)' => 'count star value row20');
     $db_config->add_record($row20, 8);
     $row21 = array('proid' => 'project_id_row21', 'project_title' => 'project title row21');
     $db_config->add_record($row21, 8);
     $row22 = array('COUNT(*)' => 'count star value row22');
     $db_config->add_record($row22, 9);
     $row23 = array('proid' => 'project_id_row23', 'project_title' => 'project title row23');
     $db_config->add_record($row23, 9);
     $row24 = array('COUNT(*)' => 'count star value row24');
     $db_config->add_record($row24, 10);
     $row25 = array('proid' => 'project_id_row25', 'project_title' => 'project title row25');
     $db_config->add_record($row25, 10);
     $row26 = array('COUNT(*)' => 'count star value row26');
     $db_config->add_record($row26, 11);
     $row27 = array('proid' => 'project_id_row27', 'project_title' => 'project title row27');
     $db_config->add_record($row27, 11);
     //
     // fubar query
     //
     $bx = $this->_create_default_box();
     capture_reset_and_start();
     // here next_record will not be called
     personal_news_short($user1);
     $this->set_text(capture_stop_and_get());
     $this->set_msg('test 1');
     $this->_testFor_string_length(718);
     $this->_testFor_pattern("Last 5 News by " . $user1);
     $this->_testFor_pattern("no news posted\n");
     $this->reverse_next_test();
     $this->_testFor_pattern('See all the comments...');
     //
     // snafu query
     //
     $bx = $this->_create_default_box();
     capture_reset_and_start();
     // here next_record will not be called
     personal_news_short($user2);
     $this->set_text(capture_stop_and_get());
     $this->set_msg('test 2');
     $this->_testFor_string_length(1195);
     $this->_testFor_pattern("Last 5 News by " . $user2);
     $this->reverse_next_test();
     $this->_testFor_pattern('no news posted');
     $this->reverse_next_test();
     $this->_testFor_pattern('See all the comments...');
     $this->_testFor_news_link($row1['proid'], $row1['subject_news'], $row3['COUNT(*)'], $row4['proid'], $row4['project_title']);
     $this->_testFor_news_link($row2['proid'], $row2['subject_news'], $row5['COUNT(*)'], $row6['proid'], $row6['project_title']);
     //
     // fritz query
     //
     $bx = $this->_create_default_box();
     capture_reset_and_start();
     // here next_record will not be called
     personal_news_short($user3);
     $this->set_text(capture_stop_and_get());
     $this->set_msg('test 3');
     $this->_testFor_string_length(2032);
     $this->_testFor_pattern("Last 5 News by " . $user3);
     $this->reverse_next_test();
     $this->_testFor_pattern('no news posted');
     $this->_testFor_pattern("See all the comments...");
     $this->_testFor_news_link($row7['proid'], $row7['subject_news'], $row14['COUNT(*)'], $row15['proid'], $row15['project_title']);
     $this->_testFor_news_link($row8['proid'], $row8['subject_news'], $row16['COUNT(*)'], $row17['proid'], $row17['project_title']);
     $this->_testFor_news_link($row9['proid'], $row9['subject_news'], $row18['COUNT(*)'], $row19['proid'], $row19['project_title']);
     $this->_testFor_news_link($row10['proid'], $row10['subject_news'], $row20['COUNT(*)'], $row21['proid'], $row21['project_title']);
     $this->_testFor_news_link($row11['proid'], $row11['subject_news'], $row22['COUNT(*)'], $row23['proid'], $row23['project_title']);
     $this->reverse_next_test();
     $this->_testFor_pattern(sprintf($this->p_news_long_template, $row12['proid'], $row12['subject_news'], $row26['COUNT(*)'], $row27['proid'], $row27['project_title']));
     $this->_testFor_pattern("See all the comments...");
     // if using a database, then ensure that it didn't fail
     $this->_check_db($db_config);
 }