Skip to content

Commit

Permalink
Improved code coverage (#1869)
Browse files Browse the repository at this point in the history
  • Loading branch information
siad007 authored Nov 14, 2024
1 parent d6405f4 commit 18a4823
Show file tree
Hide file tree
Showing 4 changed files with 112 additions and 27 deletions.
52 changes: 52 additions & 0 deletions tests/Phing/Test/Type/Selector/ReadableSelectorTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<?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\Test\Type\Selector;

use Phing\Test\Support\BuildFileTest;

/**
* Class ReadableSelectorTest.
*
* Test cases for isReadable selectors.
*
* @internal
*/
class ReadableSelectorTest extends BuildFileTest
{
public function setUp(): void
{
$this->configureProject(
PHING_TEST_BASE . '/etc/types/selectors/ReadableSelectorTest.xml'
);
$this->executeTarget('setup');
}

public function tearDown(): void
{
$this->executeTarget('clean');
}

public function testReadable(): void
{
$this->executeTarget(__FUNCTION__);
$this->assertPropertySet('selected');
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,18 @@
use Phing\Test\Support\BuildFileTest;

/**
* Class ReadWriteTest.
* Class ReadableSelectorTest.
*
* Test cases for isReadable/isWritable selectors.
* Test cases for isReadable selectors.
*
* @internal
*/
class ReadWriteTest extends BuildFileTest
class WritableSelectorTest extends BuildFileTest
{
public function setUp(): void
{
$this->configureProject(
PHING_TEST_BASE . '/etc/types/selectors/ReadWriteTest.xml'
PHING_TEST_BASE . '/etc/types/selectors/WritableSelectorTest.xml'
);
$this->executeTarget('setup');
}
Expand All @@ -44,22 +44,10 @@ public function tearDown(): void
$this->executeTarget('clean');
}

public function testReadable(): void
{
$this->executeTarget(__FUNCTION__);
$project = $this->getProject();
$output = $project->getProperty('output');
$file = $project->getProperty('file');
$this->assertTrue(is_readable(sprintf('%s/%s', $output, $file)));
}

public function testWritable(): void
{
$this->executeTarget(__FUNCTION__);
$project = $this->getProject();
$output = $project->getProperty('output');
$file = $project->getProperty('file');
$this->assertTrue(is_writable(sprintf('%s/%s', $output, $file)));
$this->assertPropertySet('selected');
}

public function testUnwritable(): void
Expand All @@ -68,6 +56,6 @@ public function testUnwritable(): void
$project = $this->getProject();
$output = $project->getProperty('output');
$file = $project->getProperty('file');
$this->assertFalse(is_writable(sprintf('%s/%s', $output, $file)));
$this->assertIsNotWritable(sprintf('%s/%s', $output, $file));
}
}
49 changes: 49 additions & 0 deletions tests/etc/types/selectors/ReadableSelectorTest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<project name="test" basedir="." default="main">

<property name="tmp.dir" value="tmp/selector"/>
<property name="output" value="${tmp.dir}/testoutput"/>

<property name="file" value="testfile"/>

<condition property="unix">
<os family="unix"/>
</condition>

<condition property="windows">
<os family="windows"/>
</condition>

<target name="setup">
<mkdir dir="${output}"/>
</target>

<target name="unix-clean" unless="windows">
<chmod file="${output}/${file}" mode="777"/>
<delete file="${output}"/>
</target>

<target name="win-clean" unless="unix">
<attrib file="${output}/${file}" readonly="false"/>
<delete file="${output}"/>
</target>

<target name="clean" depends="unix-clean,win-clean"/>

<target name="createTestdir">
<mkdir dir="${output}"/>
<touch file="${output}/${file}"/>
</target>

<target name="testReadable" depends="createTestdir">
<condition property="selected">
<isfileselected file="${output}/${file}">
<readable/>
</isfileselected>
</condition>
</target>

<target name="main">
<echo msg="This test build file is not executable."/>
</target>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,12 @@
<touch file="${output}/${file}"/>
</target>

<target name="testReadable" depends="createTestdir">
<fileset dir="${output}">
<readable/>
</fileset>
</target>

<target name="testWritable" depends="createTestdir">
<fileset dir="${output}">
<writable/>
</fileset>
<condition property="selected">
<isfileselected file="${output}/${file}">
<writable/>
</isfileselected>
</condition>
</target>

<target name="makeFileUnwritable"
Expand Down

0 comments on commit 18a4823

Please sign in to comment.