Page MenuHomePhabricator

D12664.id30627.diff
No OneTemporary

D12664.id30627.diff

diff --git a/src/infrastructure/testing/ArcanistTestCase.php b/src/infrastructure/testing/ArcanistTestCase.php
--- a/src/infrastructure/testing/ArcanistTestCase.php
+++ b/src/infrastructure/testing/ArcanistTestCase.php
@@ -1,13 +1,3 @@
<?php
-abstract class ArcanistTestCase extends ArcanistPhutilTestCase {
-
- protected function getLink($method) {
- $arcanist_project = 'PHID-APRJ-703e0b140530f17ede30';
- return
- 'https://secure.phabricator.com/diffusion/symbol/'.$method.
- '/?lang=php&projects='.$arcanist_project.
- '&jump=true&context='.get_class($this);
- }
-
-}
+abstract class ArcanistTestCase extends ArcanistPhutilTestCase {}
diff --git a/src/unit/engine/PhutilUnitTestEngine.php b/src/unit/engine/PhutilUnitTestEngine.php
--- a/src/unit/engine/PhutilUnitTestEngine.php
+++ b/src/unit/engine/PhutilUnitTestEngine.php
@@ -39,7 +39,8 @@
foreach ($run_tests as $test_class) {
$test_case = newv($test_class, array());
$test_case->setEnableCoverage($enable_coverage);
- $test_case->setProjectRoot($project_root);
+ $test_case->setWorkingCopy($this->getWorkingCopy());
+
if ($this->getPaths()) {
$test_case->setPaths($this->getPaths());
}
diff --git a/src/unit/engine/XUnitTestEngine.php b/src/unit/engine/XUnitTestEngine.php
--- a/src/unit/engine/XUnitTestEngine.php
+++ b/src/unit/engine/XUnitTestEngine.php
@@ -89,7 +89,6 @@
* @return array Array of test results.
*/
public function run() {
-
$this->loadEnvironment();
if ($this->getRunAllTests()) {
diff --git a/src/unit/engine/__tests__/PhutilUnitTestEngineTestCase.php b/src/unit/engine/__tests__/PhutilUnitTestEngineTestCase.php
--- a/src/unit/engine/__tests__/PhutilUnitTestEngineTestCase.php
+++ b/src/unit/engine/__tests__/PhutilUnitTestEngineTestCase.php
@@ -67,7 +67,10 @@
public function testFailSkip() {
$failed = 0;
$skipped = 0;
- $test_case = new ArcanistPhutilTestCaseTestCase();
+
+ $test_case = id(new ArcanistPhutilTestCaseTestCase())
+ ->setWorkingCopy($this->getWorkingCopy());
+
foreach ($test_case->run() as $result) {
if ($result->getResult() == ArcanistUnitTestResult::RESULT_FAIL) {
$failed++;
diff --git a/src/unit/engine/phutil/ArcanistPhutilTestCase.php b/src/unit/engine/phutil/ArcanistPhutilTestCase.php
--- a/src/unit/engine/phutil/ArcanistPhutilTestCase.php
+++ b/src/unit/engine/phutil/ArcanistPhutilTestCase.php
@@ -16,7 +16,7 @@
private $results = array();
private $enableCoverage;
private $coverage = array();
- private $projectRoot;
+ private $workingCopy;
private $paths;
private $renderer;
@@ -560,7 +560,9 @@
$coverage = array();
foreach ($result as $file => $report) {
- if (strncmp($file, $this->projectRoot, strlen($this->projectRoot))) {
+ $project_root = $this->getProjectRoot();
+
+ if (strncmp($file, $project_root, strlen($project_root))) {
continue;
}
@@ -583,7 +585,7 @@
$str .= 'N'; // Not executable.
}
}
- $coverage[substr($file, strlen($this->projectRoot) + 1)] = $str;
+ $coverage[substr($file, strlen($project_root) + 1)] = $str;
}
// Only keep coverage information for files modified by the change. In
@@ -603,18 +605,48 @@
}
}
- final public function setProjectRoot($project_root) {
- $this->projectRoot = $project_root;
+ final public function getWorkingCopy() {
+ return $this->workingCopy;
+ }
+
+ final public function setWorkingCopy(
+ ArcanistWorkingCopyIdentity $working_copy) {
+
+ $this->workingCopy = $working_copy;
return $this;
}
+ final public function getProjectRoot() {
+ $working_copy = $this->getWorkingCopy();
+
+ if (!$working_copy) {
+ throw new Exception(
+ pht(
+ 'You must call %s before you can call %s.',
+ 'setWorkingCopy()',
+ __FUNCTION__.'()'));
+ }
+
+ return $working_copy->getProjectRoot();
+ }
+
final public function setPaths(array $paths) {
$this->paths = $paths;
return $this;
}
- protected function getLink($method) {
- return null;
+ final protected function getLink($method) {
+ $base_uri = $this
+ ->getWorkingCopy()
+ ->getProjectConfig('phabricator.uri');
+
+ $uri = id(new PhutilURI($base_uri))
+ ->setPath("/diffusion/symbol/{$method}/")
+ ->setQueryParam('context', get_class($this))
+ ->setQueryParam('jump', 'true')
+ ->setQueryParam('lang', 'php');
+
+ return (string)$uri;
}
public function setRenderer(ArcanistUnitRenderer $renderer) {

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 21, 2:50 AM (5 h, 18 m ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7224220
Default Alt Text
D12664.id30627.diff (4 KB)

Event Timeline