Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2892163
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Advanced/Developer...
View Handle
View Hovercard
Size
11 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/src/applications/lipsum/generator/PhabricatorTestDataGenerator.php b/src/applications/lipsum/generator/PhabricatorTestDataGenerator.php
index 814919e23c..6470f6c26f 100644
--- a/src/applications/lipsum/generator/PhabricatorTestDataGenerator.php
+++ b/src/applications/lipsum/generator/PhabricatorTestDataGenerator.php
@@ -1,19 +1,28 @@
<?php
abstract class PhabricatorTestDataGenerator {
public function generate() {
return;
}
public function loadOneRandom($classname) {
try {
return newv($classname, array())
->loadOneWhere("1 = 1 ORDER BY RAND() LIMIT 1");
} catch (PhutilMissingSymbolException $ex) {
throw new PhutilMissingSymbolException(
"Unable to load symbol ".$classname.": this class does not exit.");
}
}
+
+ public function loadPhabrictorUserPHID() {
+ return $this->loadOneRandom("PhabricatorUser")->getPHID();
+ }
+
+ public function loadPhabrictorUser() {
+ return $this->loadOneRandom("PhabricatorUser");
+ }
+
}
diff --git a/src/applications/maniphest/lipsum/PhabricatorManiphestTaskTestDataGenerator.php b/src/applications/maniphest/lipsum/PhabricatorManiphestTaskTestDataGenerator.php
index 6a04324a48..3245e19a76 100644
--- a/src/applications/maniphest/lipsum/PhabricatorManiphestTaskTestDataGenerator.php
+++ b/src/applications/maniphest/lipsum/PhabricatorManiphestTaskTestDataGenerator.php
@@ -1,126 +1,118 @@
<?php
final class PhabricatorManiphestTaskTestDataGenerator
extends PhabricatorTestDataGenerator {
public function generate() {
- $authorPHID = $this->loadAuthorPHID();
+ $authorPHID = $this->loadPhabrictorUserPHID();
$author = id(new PhabricatorUser())
->loadOneWhere('phid = %s', $authorPHID);
$task = id(new ManiphestTask())
->setSubPriority($this->generateTaskSubPriority())
->setAuthorPHID($authorPHID)
->setTitle($this->generateTitle());
$content_source = PhabricatorContentSource::newForSource(
PhabricatorContentSource::SOURCE_UNKNOWN,
array());
$template = id(new ManiphestTransaction())
->setAuthorPHID($authorPHID)
->setContentSource($content_source);
// Accumulate Transactions
$changes = array();
$changes[ManiphestTransactionType::TYPE_TITLE] =
$this->generateTitle();
$changes[ManiphestTransactionType::TYPE_DESCRIPTION] =
$this->generateDescription();
$changes[ManiphestTransactionType::TYPE_OWNER] =
$this->loadOwnerPHID();
$changes[ManiphestTransactionType::TYPE_STATUS] =
$this->generateTaskStatus();
$changes[ManiphestTransactionType::TYPE_PRIORITY] =
$this->generateTaskPriority();
$changes[ManiphestTransactionType::TYPE_CCS] =
$this->getCCPHIDs();
$changes[ManiphestTransactionType::TYPE_PROJECTS] =
$this->getProjectPHIDs();
$transactions = array();
foreach ($changes as $type => $value) {
$transaction = clone $template;
$transaction->setTransactionType($type);
$transaction->setNewValue($value);
$transactions[] = $transaction;
}
// Accumulate Auxiliary Transactions
$aux_fields = id(ManiphestTaskExtensions::newExtensions())
->loadFields($task, $author);
if ($aux_fields) {
foreach ($aux_fields as $aux_field) {
$transaction = clone $template;
$transaction->setTransactionType(
ManiphestTransactionType::TYPE_AUXILIARY);
$aux_key = $aux_field->getAuxiliaryKey();
$transaction->setMetadataValue('aux:key', $aux_key);
$transaction->setNewValue($aux_field->getValueForStorage());
$transactions[] = $transaction;
}
}
// Apply Transactions
$editor = id(new ManiphestTransactionEditor())
->setActor($author)
->applyTransactions($task, $transactions);
return $task->save();
}
public function getCCPHIDs() {
$ccs = array();
for ($i = 0; $i < rand(1, 4);$i++) {
$ccs[] = $this->loadPhabrictorUserPHID();
}
return $ccs;
}
public function getProjectPHIDs() {
$projects = array();
for ($i = 0; $i < rand(1, 4);$i++) {
$projects[] = $this->loadOneRandom("PhabricatorProject")->getPHID();
}
return $projects;
}
- private function loadPhabrictorUserPHID() {
- return $this->loadOneRandom("PhabricatorUser")->getPHID();
- }
-
- public function loadAuthorPHID() {
- return $this->loadPhabrictorUserPHID();
- }
-
public function loadOwnerPHID() {
if (rand(0, 3) == 0) {
return null;
} else {
return $this->loadPhabrictorUserPHID();
}
}
public function generateTitle() {
return id(new PhutilLipsumContextFreeGrammar())
->generate();
}
public function generateDescription() {
return id(new PhutilLipsumContextFreeGrammar())
->generateSeveral(rand(30, 40));
}
public function generateTaskPriority() {
return array_rand(ManiphestTaskPriority::getTaskPriorityMap());
}
public function generateTaskSubPriority() {
return rand(2 << 16, 2 << 32);
}
public function generateTaskStatus() {
$statuses = array_keys(ManiphestTaskStatus::getTaskStatusMap());
// Make sure 4/5th of all generated Tasks are open
$random = rand(0, 4);
if ($random != 0) {
return ManiphestTaskStatus::STATUS_OPEN;
} else {
return array_rand($statuses);
}
}
}
diff --git a/src/applications/paste/lipsum/PhabricatorPasteTestDataGenerator.php b/src/applications/paste/lipsum/PhabricatorPasteTestDataGenerator.php
index fe31a45834..dd99bb4811 100644
--- a/src/applications/paste/lipsum/PhabricatorPasteTestDataGenerator.php
+++ b/src/applications/paste/lipsum/PhabricatorPasteTestDataGenerator.php
@@ -1,100 +1,92 @@
<?php
final class PhabricatorPasteTestDataGenerator
extends PhabricatorTestDataGenerator {
// Better Support for this in the future
private $supportedLanguages = array(
"Java" => "java",
"PHP" => "php");
public function generate() {
- $authorphid = $this->loadAuthorPHID();
+ $authorphid = $this->loadPhabrictorUserPHID();
$language = $this->generateLanguage();
$content = $this->generateContent($language);
$title = $this->generateTitle($language);
$paste_file = PhabricatorFile::newFromFileData(
$content,
array(
'name' => $title,
'mime-type' => 'text/plain; charset=utf-8',
'authorPHID' => $authorphid,
));
$policy = $this->generatePolicy();
$filephid = $paste_file->getPHID();
$parentphid = $this->loadPhabrictorPastePHID();
$paste = id(new PhabricatorPaste())
->setParentPHID($parentphid)
->setAuthorPHID($authorphid)
->setTitle($title)
->setLanguage($language)
->setViewPolicy($policy)
->setFilePHID($filephid)
->save();
return $paste;
}
private function loadPhabrictorPastePHID() {
$random = rand(0, 1);
if ($random == 1) {
$paste = id($this->loadOneRandom("PhabricatorPaste"));
if ($paste) {
return $paste->getPHID();
}
}
return null;
}
- private function loadPhabrictorUserPHID() {
- return id($this->loadOneRandom("PhabricatorUser"))->getPHID();
- }
-
- public function loadAuthorPHID() {
- return $this->loadPhabrictorUserPHID();
- }
-
public function generateTitle($language = null) {
$taskgen = new PhutilLipsumContextFreeGrammar();
// Remove Punctuation
$title = preg_replace('/[^a-zA-Z 0-9]+/', '', $taskgen->generate());
// Capitalize First Letters
$title = ucwords($title);
// Remove Spaces
$title = preg_replace('/\s+/', '', $title);
if ($language == null ||
!in_array($language, array_keys($this->supportedLanguages))) {
return $title.".txt";
} else {
return $title.".".$this->supportedLanguages[$language];
}
}
public function generateLanguage() {
$supplemented_lang = $this->supportedLanguages;
$supplemented_lang["lipsum"] = "txt";
return array_rand($supplemented_lang);
}
public function generateContent($language = null) {
if ($language == null ||
!in_array($language, array_keys($this->supportedLanguages))) {
return id(new PhutilLipsumContextFreeGrammar())
->generateSeveral(rand(30, 40));
} else {
$cfg_class = "Phutil".$language."CodeSnippetContextFreeGrammar";
return newv($cfg_class, array())->generate();
}
}
public function generatePolicy() {
// Make sure 4/5th of all generated Pastes are viewable to all
switch (rand(0, 4)) {
case 0:
return PhabricatorPolicies::POLICY_PUBLIC;
case 1:
return PhabricatorPolicies::POLICY_NOONE;
default:
return PhabricatorPolicies::POLICY_USER;
}
}
}
diff --git a/src/applications/project/lipsum/PhabricatorProjectTestDataGenerator.php b/src/applications/project/lipsum/PhabricatorProjectTestDataGenerator.php
index af726170a8..216d584df0 100644
--- a/src/applications/project/lipsum/PhabricatorProjectTestDataGenerator.php
+++ b/src/applications/project/lipsum/PhabricatorProjectTestDataGenerator.php
@@ -1,89 +1,82 @@
<?php
final class PhabricatorProjectTestDataGenerator
extends PhabricatorTestDataGenerator {
private $xactions = array();
public function generate() {
$title = $this->generateTitle();
- $author = $this->loadAuthorPHID();
+ $author = $this->loadPhabrictorUser();
+ $authorPHID = $author->getPHID();
$project = id(new PhabricatorProject())
->setName($title)
- ->setAuthorPHID($author);
+ ->setAuthorPHID($authorPHID);
$this->addTransaction(
PhabricatorProjectTransactionType::TYPE_NAME,
$title);
$this->addTransaction(
PhabricatorProjectTransactionType::TYPE_MEMBERS,
- $this->loadMembersWithAuthor($author));
+ $this->loadMembersWithAuthor($authorPHID));
$this->addTransaction(
PhabricatorProjectTransactionType::TYPE_STATUS,
$this->generateProjectStatus());
$this->addTransaction(
PhabricatorProjectTransactionType::TYPE_CAN_VIEW,
PhabricatorPolicies::POLICY_PUBLIC);
$this->addTransaction(
PhabricatorProjectTransactionType::TYPE_CAN_EDIT,
PhabricatorPolicies::POLICY_PUBLIC);
$this->addTransaction(
PhabricatorProjectTransactionType::TYPE_CAN_JOIN,
PhabricatorPolicies::POLICY_PUBLIC);
$editor = id(new PhabricatorProjectEditor($project))
- ->setActor(id(new PhabricatorUser())
- ->loadOneWhere('phid = %s', $author))
+ ->setActor($author)
->applyTransactions($this->xactions);
$profile = id(new PhabricatorProjectProfile())
->setBlurb($this->generateDescription())
->setProjectPHID($project->getPHID())
->save();
return $project->save();
}
private function addTransaction($type, $value) {
$this->xactions[] = id(new PhabricatorProjectTransaction())
->setTransactionType($type)
->setNewValue($value);
}
- private function loadPhabrictorUserPHID() {
- return $this->loadOneRandom("PhabricatorUser")->getPHID();
- }
-
- public function loadAuthorPHID() {
- return $this->loadPhabrictorUserPHID();
- }
public function loadMembersWithAuthor($author) {
$members = array($author);
for ($i = 0; $i < rand(10, 20);$i++) {
$members[] = $this->loadPhabrictorUserPHID();
}
return $members;
}
public function generateTitle() {
return id(new PhutilLipsumContextFreeGrammar())
->generate();
}
public function generateDescription() {
return id(new PhutilLipsumContextFreeGrammar())
->generateSeveral(rand(30, 40));
}
public function generateProjectStatus() {
$statuses = array_keys(PhabricatorProjectStatus::getStatusMap());
// Make sure 4/5th of all generated Projects are active
$random = rand(0, 4);
if ($random != 0) {
return $statuses[0];
} else {
return $statuses[1];
}
}
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sun, Jan 19, 16:20 (2 w, 6 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1126424
Default Alt Text
(11 KB)
Attached To
Mode
rP Phorge
Attached
Detach File
Event Timeline
Log In to Comment