From 6b6e1f0ba890c686dc8b3a3578ad6f8f33dde759 Mon Sep 17 00:00:00 2001 From: Kenneth Endfinger Date: Mon, 23 Jul 2018 15:05:32 -0500 Subject: [PATCH] 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 --- ...rDifferentialRevisionTestDataGenerator.php | 10 ++-- .../PhabricatorPasteTestDataGenerator.php | 48 +++++++++++-------- 2 files changed, 34 insertions(+), 24 deletions(-) diff --git a/src/applications/differential/lipsum/PhabricatorDifferentialRevisionTestDataGenerator.php b/src/applications/differential/lipsum/PhabricatorDifferentialRevisionTestDataGenerator.php index 2443fe9651..26632dff24 100644 --- a/src/applications/differential/lipsum/PhabricatorDifferentialRevisionTestDataGenerator.php +++ b/src/applications/differential/lipsum/PhabricatorDifferentialRevisionTestDataGenerator.php @@ -48,10 +48,12 @@ final class PhabricatorDifferentialRevisionTestDataGenerator public function generateDiff($author) { $paste_generator = new PhabricatorPasteTestDataGenerator(); - $languages = $paste_generator->supportedLanguages; - $lang = array_rand($languages); - $code = $paste_generator->generateContent($lang); - $altcode = $paste_generator->generateContent($lang); + $languages = $paste_generator->getSupportedLanguages(); + $language = array_rand($languages); + $spec = $languages[$language]; + + $code = $paste_generator->generateContent($spec); + $altcode = $paste_generator->generateContent($spec); $newcode = $this->randomlyModify($code, $altcode); $diff = id(new PhabricatorDifferenceEngine()) ->generateRawDiffFromFileContent($code, $newcode); diff --git a/src/applications/paste/lipsum/PhabricatorPasteTestDataGenerator.php b/src/applications/paste/lipsum/PhabricatorPasteTestDataGenerator.php index 24ac718606..80dbc10ee0 100644 --- a/src/applications/paste/lipsum/PhabricatorPasteTestDataGenerator.php +++ b/src/applications/paste/lipsum/PhabricatorPasteTestDataGenerator.php @@ -22,9 +22,11 @@ final class PhabricatorPasteTestDataGenerator PhabricatorPasteTitleTransaction::TRANSACTIONTYPE, $name); - $xactions[] = $this->newTransaction( - PhabricatorPasteLanguageTransaction::TRANSACTIONTYPE, - $language); + if (strlen($language) > 0) { + $xactions[] = $this->newTransaction( + PhabricatorPasteLanguageTransaction::TRANSACTIONTYPE, + $language); + } $xactions[] = $this->newTransaction( PhabricatorPasteContentTransaction::TRANSACTIONTYPE, @@ -43,17 +45,29 @@ final class PhabricatorPasteTestDataGenerator return new PhabricatorPasteTransaction(); } - private function newPasteContent() { - $languages = array( - 'txt' => array(), - 'php' => array( - 'content' => 'PhutilPHPCodeSnippetContextFreeGrammar', - ), - 'java' => array( - 'content' => 'PhutilJavaCodeSnippetContextFreeGrammar', - ), - ); + public function getSupportedLanguages() { + return array( + 'php' => array( + 'content' => 'PhutilPHPCodeSnippetContextFreeGrammar', + ), + 'java' => array( + 'content' => 'PhutilJavaCodeSnippetContextFreeGrammar', + ), + ); + } + + public function generateContent($spec) { + $content_generator = idx($spec, 'content'); + if (!$content_generator) { + $content_generator = 'PhutilLipsumContextFreeGrammar'; + } + return newv($content_generator, array()) + ->generateSeveral($this->roll(4, 12, 10)); + } + + private function newPasteContent() { + $languages = $this->getSupportedLanguages(); $language = array_rand($languages); $spec = $languages[$language]; @@ -62,16 +76,10 @@ final class PhabricatorPasteTestDataGenerator $title_generator = 'PhabricatorPasteFilenameContextFreeGrammar'; } - $content_generator = idx($spec, 'content'); - if (!$content_generator) { - $content_generator = 'PhutilLipsumContextFreeGrammar'; - } - $title = newv($title_generator, array()) ->generate(); - $content = newv($content_generator, array()) - ->generateSeveral($this->roll(4, 12, 10)); + $content = $this->generateContent($spec); // Usually add the language as a suffix. if ($this->roll(1, 20) > 2) { -- 2.51.2