Skip to content

Commit

Permalink
Introduce DisguiseLogger (#1868)
Browse files Browse the repository at this point in the history
* Added DisguiseLogger - related to #1672

* Fixed static code analysis

* Added test

* Added test
  • Loading branch information
siad007 authored Sep 28, 2024
1 parent 12a6299 commit 578b7de
Show file tree
Hide file tree
Showing 2 changed files with 162 additions and 0 deletions.
71 changes: 71 additions & 0 deletions src/Phing/Listener/DisguiseLogger.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
<?php

/**
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* This software consists of voluntary contributions made by many individuals
* and is licensed under the LGPL. For more information please see
* <http://phing.info>.
*/

namespace Phing\Listener;

use Phing\Phing;

/**
* @author Siad Ardroumli <[email protected]>
*/
class DisguiseLogger extends DefaultLogger
{
public function messageLogged(BuildEvent $event)
{
$this->maskUriPassword($event);
parent::messageLogged($event);
}

public function buildStarted(BuildEvent $event)
{
}

public function buildFinished(BuildEvent $event)
{
}

public function targetStarted(BuildEvent $event)
{
}

public function targetFinished(BuildEvent $event)
{
}

public function taskStarted(BuildEvent $event)
{
}

public function taskFinished(BuildEvent $event)
{
}

protected function maskUriPassword(BuildEvent $event): void
{
$event->setMessage(
preg_replace(
'!://(.*):(.*)@!',
'://$1:*****@',
$event->getMessage()
),
$event->getPriority()
);
}
}
91 changes: 91 additions & 0 deletions tests/Phing/Test/Listener/DisguiseLoggerTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<?php

namespace Phing\Test\Listener;

use Phing\Listener\BuildEvent;
use Phing\Listener\DisguiseLogger;
use Phing\Project;
use PHPUnit\Framework\TestCase;

/**
* @internal
*/
class DisguiseLoggerTest extends TestCase
{
private DisguiseLogger $logger;

public function setUp(): void
{
$this->logger = new DisguiseLogger();
}

/**
* @test
*/
public function maskOutput()
{
$event = new BuildEvent(new Project());
$event->setMessage('https://foo:[email protected]', $event->getPriority());
$this->assertNull($this->logger->messageLogged($event));
}

/**
* @test
*/
public function buildStarted()
{
$event = new BuildEvent(new Project());
$event->setMessage('https://foo:[email protected]', $event->getPriority());
$this->assertNull($this->logger->buildStarted($event));
}

/**
* @test
*/
public function buildFinished()
{
$event = new BuildEvent(new Project());
$event->setMessage('https://foo:[email protected]', $event->getPriority());
$this->assertNull($this->logger->buildFinished($event));
}

/**
* @test
*/
public function targetStarted()
{
$event = new BuildEvent(new Project());
$event->setMessage('https://foo:[email protected]', $event->getPriority());
$this->assertNull($this->logger->targetStarted($event));
}

/**
* @test
*/
public function targetFinished()
{
$event = new BuildEvent(new Project());
$event->setMessage('https://foo:[email protected]', $event->getPriority());
$this->assertNull($this->logger->targetFinished($event));
}

/**
* @test
*/
public function taskStarted()
{
$event = new BuildEvent(new Project());
$event->setMessage('https://foo:[email protected]', $event->getPriority());
$this->assertNull($this->logger->taskStarted($event));
}

/**
* @test
*/
public function taskFinished()
{
$event = new BuildEvent(new Project());
$event->setMessage('https://foo:[email protected]', $event->getPriority());
$this->assertNull($this->logger->taskFinished($event));
}
}

0 comments on commit 578b7de

Please sign in to comment.