@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Fix Lipsum generators for Differential Revisions and Pastes

Summary:
When generating test data to solve a bug I have encountered, I noticed Lipsum was not working correctly for Differential Revisions and Pastes.

It seemed like they weren't updated after some refactoring. This fixes that by updating them.

Test Plan: Run Lipsum for all objects, and note that it has much less failure.

Reviewers: #blessed_reviewers, epriestley

Reviewed By: #blessed_reviewers, epriestley

Subscribers: Korvin, epriestley

Differential Revision: https://secure.phabricator.com/D19534

+34 -24
+6 -4
src/applications/differential/lipsum/PhabricatorDifferentialRevisionTestDataGenerator.php
··· 48 48 49 49 public function generateDiff($author) { 50 50 $paste_generator = new PhabricatorPasteTestDataGenerator(); 51 - $languages = $paste_generator->supportedLanguages; 52 - $lang = array_rand($languages); 53 - $code = $paste_generator->generateContent($lang); 54 - $altcode = $paste_generator->generateContent($lang); 51 + $languages = $paste_generator->getSupportedLanguages(); 52 + $language = array_rand($languages); 53 + $spec = $languages[$language]; 54 + 55 + $code = $paste_generator->generateContent($spec); 56 + $altcode = $paste_generator->generateContent($spec); 55 57 $newcode = $this->randomlyModify($code, $altcode); 56 58 $diff = id(new PhabricatorDifferenceEngine()) 57 59 ->generateRawDiffFromFileContent($code, $newcode);
+28 -20
src/applications/paste/lipsum/PhabricatorPasteTestDataGenerator.php
··· 22 22 PhabricatorPasteTitleTransaction::TRANSACTIONTYPE, 23 23 $name); 24 24 25 - $xactions[] = $this->newTransaction( 26 - PhabricatorPasteLanguageTransaction::TRANSACTIONTYPE, 27 - $language); 25 + if (strlen($language) > 0) { 26 + $xactions[] = $this->newTransaction( 27 + PhabricatorPasteLanguageTransaction::TRANSACTIONTYPE, 28 + $language); 29 + } 28 30 29 31 $xactions[] = $this->newTransaction( 30 32 PhabricatorPasteContentTransaction::TRANSACTIONTYPE, ··· 43 45 return new PhabricatorPasteTransaction(); 44 46 } 45 47 46 - private function newPasteContent() { 47 - $languages = array( 48 - 'txt' => array(), 49 - 'php' => array( 50 - 'content' => 'PhutilPHPCodeSnippetContextFreeGrammar', 51 - ), 52 - 'java' => array( 53 - 'content' => 'PhutilJavaCodeSnippetContextFreeGrammar', 54 - ), 55 - ); 48 + public function getSupportedLanguages() { 49 + return array( 50 + 'php' => array( 51 + 'content' => 'PhutilPHPCodeSnippetContextFreeGrammar', 52 + ), 53 + 'java' => array( 54 + 'content' => 'PhutilJavaCodeSnippetContextFreeGrammar', 55 + ), 56 + ); 57 + } 56 58 59 + public function generateContent($spec) { 60 + $content_generator = idx($spec, 'content'); 61 + if (!$content_generator) { 62 + $content_generator = 'PhutilLipsumContextFreeGrammar'; 63 + } 64 + 65 + return newv($content_generator, array()) 66 + ->generateSeveral($this->roll(4, 12, 10)); 67 + } 68 + 69 + private function newPasteContent() { 70 + $languages = $this->getSupportedLanguages(); 57 71 $language = array_rand($languages); 58 72 $spec = $languages[$language]; 59 73 ··· 62 76 $title_generator = 'PhabricatorPasteFilenameContextFreeGrammar'; 63 77 } 64 78 65 - $content_generator = idx($spec, 'content'); 66 - if (!$content_generator) { 67 - $content_generator = 'PhutilLipsumContextFreeGrammar'; 68 - } 69 - 70 79 $title = newv($title_generator, array()) 71 80 ->generate(); 72 81 73 - $content = newv($content_generator, array()) 74 - ->generateSeveral($this->roll(4, 12, 10)); 82 + $content = $this->generateContent($spec); 75 83 76 84 // Usually add the language as a suffix. 77 85 if ($this->roll(1, 20) > 2) {