diff --git a/Magento2/Sniffs/Namespaces/ImportsFromTestNamespaceSniff.php b/Magento2/Sniffs/Namespaces/ImportsFromTestNamespaceSniff.php
index b1078611..8d976b4b 100644
--- a/Magento2/Sniffs/Namespaces/ImportsFromTestNamespaceSniff.php
+++ b/Magento2/Sniffs/Namespaces/ImportsFromTestNamespaceSniff.php
@@ -7,6 +7,7 @@
use PHP_CodeSniffer\Sniffs\Sniff;
use PHP_CodeSniffer\Files\File;
+use PHP_CodeSniffer\Util\Tokens;
/**
* Detects static test namespace.
@@ -43,9 +44,27 @@ public function register()
public function process(File $phpcsFile, $stackPtr)
{
$next = $phpcsFile->findNext([T_COMMA, T_SEMICOLON, T_OPEN_USE_GROUP, T_CLOSE_TAG], ($stackPtr + 1));
+ $tokens = $phpcsFile->getTokens();
$getTokenAsContent = $phpcsFile->getTokensAsString($stackPtr, ($next - $stackPtr));
if (strpos($getTokenAsContent, $this->prohibitNamespace) !== false) {
$phpcsFile->addWarning($this->warningMessage, $stackPtr, $this->warningCode);
}
+ if ($next !== false
+ && $tokens[$next]['code'] !== T_SEMICOLON
+ && $tokens[$next]['code'] !== T_CLOSE_TAG
+ ) {
+ $baseUse = rtrim($phpcsFile->getTokensAsString($stackPtr, ($next - $stackPtr)));
+ $baseUse = str_replace('use \\', '', $baseUse);
+ $closingCurly = $phpcsFile->findNext(T_CLOSE_USE_GROUP, ($next + 1));
+ do {
+ $next = $phpcsFile->findNext(Tokens::$emptyTokens, ($next + 1), $closingCurly, true);
+ $groupedAsContent = $baseUse. $tokens[$next]['content'];
+ $next = $phpcsFile->findNext(T_COMMA, ($next + 1), $closingCurly);
+ if (strpos($groupedAsContent, $this->prohibitNamespace) !== false) {
+ $phpcsFile->addWarning($this->warningMessage, $stackPtr, $this->warningCode);
+ return;
+ }
+ } while ($next != false);
+ }
}
}
diff --git a/Magento2/Tests/Namespaces/ImportsFromTestNamespaceUnitTest.inc b/Magento2/Tests/Namespaces/ImportsFromTestNamespaceUnitTest.inc
index 13c889c8..50d339a1 100644
--- a/Magento2/Tests/Namespaces/ImportsFromTestNamespaceUnitTest.inc
+++ b/Magento2/Tests/Namespaces/ImportsFromTestNamespaceUnitTest.inc
@@ -1,4 +1,6 @@
1];
+ return [
+ 2 => 1,
+ 5 => 1
+ ];
}
}
diff --git a/Magento2/ruleset.xml b/Magento2/ruleset.xml
index 9810723b..70c26495 100644
--- a/Magento2/ruleset.xml
+++ b/Magento2/ruleset.xml
@@ -189,7 +189,7 @@
*Test.php
*/tests/*
-
+
8
warning