public function testContestPage() { $user = $this->user; $contest = $this->contest; // save two sponsortalk entries require_once WCF_DIR . 'lib/data/contest/sponsortalk/ContestSponsortalkEditor.class.php'; $this->deleteArray[] = $sponsortalk = ContestSponsortalkEditor::create($contestID = $contest->contestID, $sponsortalk = __METHOD__ . ' sponsortalk #1', $userID = $user->userID, $username = $user->username); $this->deleteArray[] = $sponsortalk = ContestSponsortalkEditor::create($contestID = $contest->contestID, $sponsortalk = __METHOD__ . ' sponsortalk #2', $userID = $user->userID, $username = $user->username); $raised = false; try { $this->runHTTP('page=ContestSponsortalk&contestID=' . $contest->contestID); } catch (Exception $e) { $raised = true; } $this->assertTrue($raised, "user should not be allowed to access a private contest"); // now try with owner $this->setCurrentUser($user); $this->runHTTP('page=ContestSponsortalk&contestID=' . $contest->contestID); $this->assertEquals(count(WCF::getTPL()->get('sponsortalks')), 2); // now try with sponsor member who was invited $this->deleteArray[] = $sponsoruser = $this->createUser(); require_once WCF_DIR . 'lib/data/contest/sponsor/ContestSponsorEditor.class.php'; $this->deleteArray[] = $sponsor = ContestSponsorEditor::create($contestID = $contest->contestID, $userID = $sponsoruser->userID, $groupID = 0, $state = 'invited'); $this->setCurrentUser($sponsoruser); $this->runHTTP('page=ContestSponsortalk&contestID=' . $contest->contestID); // invited members should only see first entry $this->assertEquals(count(WCF::getTPL()->get('sponsortalks')), 1); // accepted members should have 2 entries $sponsor->update($contestID, $userID, $groupID, 'accepted'); $this->runHTTP('page=ContestSponsortalk&contestID=' . $contest->contestID); $this->assertEquals(count(WCF::getTPL()->get('sponsortalks')), 2); }
public function testReflectionAPI() { require_once WCF_DIR . 'lib/data/contest/price/ContestPriceEditor.class.php'; require_once WCF_DIR . 'lib/data/contest/sponsor/ContestSponsorEditor.class.php'; $this->deleteArray[] = $user = $this->createUser(); $this->deleteArray[] = $sponsor = ContestSponsorEditor::create($contestID = 0, $userID = $user->userID, $groupID = 0, $state = 'private'); $this->deleteArray[] = $price = ContestPriceEditor::create($contestID = 0, $sponsorID = $sponsor->sponsorID, $subject = __METHOD__ . ' subject', $message = __METHOD__ . ' message'); $this->callAllMethodsWithoutRequiredParameters($price); }
/** * @see Form::save() */ public function save() { parent::save(); // save sponsor $inserts = ''; foreach ($this->sponsors as $sponsor) { $userID = $groupID = 0; switch ($sponsor['type']) { case 'user': $userID = intval($sponsor['id']); break; case 'group': $groupID = intval($sponsor['id']); break; } ContestSponsorEditor::create($this->contest->contestID, $userID, $groupID, 'invited'); } $this->saved(); // forward HeaderUtil::redirect('index.php?page=ContestSponsor&contestID=' . $this->contest->contestID . SID_ARG_2ND_NOT_ENCODED); exit; }
/** * @see Form::save() */ public function save() { parent::save(); if ($this->sponsorID) { $sponsor = new ContestSponsor($this->sponsorID); } else { $sponsor = ContestSponsor::find($this->contest->contestID, $this->userID, $this->groupID); } if ($sponsor === null) { require_once WCF_DIR . 'lib/data/contest/sponsor/ContestSponsorEditor.class.php'; $state = $this->contest->enableSponsorCheck ? 'applied' : 'accepted'; $sponsor = ContestSponsorEditor::create($this->contest->contestID, $this->userID, $this->groupID, $state); } // save price $price = ContestPriceEditor::create($this->contest->contestID, $sponsor->sponsorID, $this->subject, $this->text, $this->secretMessage, $this->attachmentListEditor); $this->saved(); // forward HeaderUtil::redirect('index.php?page=ContestPrice&contestID=' . $this->contest->contestID . '&priceID=' . $price->priceID . SID_ARG_2ND_NOT_ENCODED . '#priceObj' . $price->priceID); exit; }
/** * Saves sponsors. */ public function setSponsors($sponsors = array(), $userID = 0, $groupID = 0) { $sponsorID = 0; require_once WCF_DIR . 'lib/data/contest/sponsor/ContestSponsorEditor.class.php'; foreach ($sponsors as $sponsor) { $sponsorObj = ContestSponsorEditor::create($this->contestID, $sponsor['type'] == 'user' ? intval($sponsor['id']) : 0, $sponsor['type'] == 'group' ? intval($sponsor['id']) : 0, 'invited'); // did i create my own user? then remember sponsorID if ($sponsorID == 0 && ($userID || $groupID)) { if ($userID > 0 && $sponsor['type'] == 'user' && $sponsor['id'] == $userID || $groupID > 0 && $sponsor['type'] == 'group' && $sponsor['id'] == $groupID) { $sponsorID = $sponsorObj->sponsorID; } } } if ($sponsorID == 0 && ($userID || $groupID)) { $sponsorObj = ContestSponsorEditor::create($this->contestID, $userID, $groupID, 'accepted'); $sponsorID = $sponsorObj->sponsorID; } return $sponsorID; }
public function testReflectionAPI() { require_once WCF_DIR . 'lib/data/contest/sponsor/ContestSponsorEditor.class.php'; $this->deleteArray[] = $sponsor = ContestSponsorEditor::create($contestID = 0, $userID = 0, $groupID = 0, $state = 'private'); $this->callAllMethodsWithoutRequiredParameters($sponsor); }
/** * @see Form::save() */ public function save() { parent::save(); // save sponsor $sponsor = ContestSponsorEditor::create($this->contest->contestID, WCF::getUser()->userID, $this->groupID, $this->state); $this->saved(); // forward HeaderUtil::redirect('index.php?page=ContestSponsor&contestID=' . $this->contest->contestID . '&sponsorID=' . $sponsor->sponsorID . SID_ARG_2ND_NOT_ENCODED . '#sponsor' . $sponsor->sponsorID); exit; }