From b98361f738288ff65e5d8e9039e7f15022d65cfc Mon Sep 17 00:00:00 2001 From: Jens Fischer Date: Sun, 10 Sep 2017 12:45:26 +0200 Subject: [PATCH] Add a unit test for #2107 --- CHANGELOG.md | 1 + flixel/system/macros/FlxAssetPaths.hx | 2 +- .../fileWithMultipleDots/file.png.txt} | 0 .../invisibleFile/.file | 0 .../duplicateFileName/subfolder2/file.txt | 0 tests/unit/src/flixel/system/FlxAssetsTest.hx | 16 ------------ .../flixel/system/macros/FlxAssetPathsTest.hx | 26 +++++++++++++++++++ 7 files changed, 28 insertions(+), 17 deletions(-) rename tests/unit/assets/{FlxAssets/duplicateFileName/subfolder1/file.txt => FlxAssetPaths/fileWithMultipleDots/file.png.txt} (100%) rename tests/unit/assets/{FlxAssets => FlxAssetPaths}/invisibleFile/.file (100%) delete mode 100644 tests/unit/assets/FlxAssets/duplicateFileName/subfolder2/file.txt delete mode 100644 tests/unit/src/flixel/system/FlxAssetsTest.hx create mode 100644 tests/unit/src/flixel/system/macros/FlxAssetPathsTest.hx diff --git a/CHANGELOG.md b/CHANGELOG.md index 417579e326..177041f7a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ - `FlxDebugger` console: fixed enum completion on non-Flash targets ([404c16b3](https://github.com/HaxeFlixel/flixel/commit/404c16b3)) - `FlxMouseEventManager`: fixed mouseOver being fired before mouseOut ([#2103](https://github.com/HaxeFlixel/flixel/issues/2103)) +- `FlxAssetPaths`: fixed `filterExtensions` for files with multiple dots ([#2107](https://github.com/HaxeFlixel/flixel/issues/2107)) 4.3.0 (July 22, 2017) ------------------------------ diff --git a/flixel/system/macros/FlxAssetPaths.hx b/flixel/system/macros/FlxAssetPaths.hx index bcd7986c3b..7cfbe1238b 100644 --- a/flixel/system/macros/FlxAssetPaths.hx +++ b/flixel/system/macros/FlxAssetPaths.hx @@ -48,7 +48,7 @@ class FlxAssetPaths if (filterExtensions != null) { var extension:String = name.split(".").last(); // get the last string with a dot before it - if (filterExtensions.indexOf(extension) == -1) + if (!filterExtensions.contains(extension)) continue; } diff --git a/tests/unit/assets/FlxAssets/duplicateFileName/subfolder1/file.txt b/tests/unit/assets/FlxAssetPaths/fileWithMultipleDots/file.png.txt similarity index 100% rename from tests/unit/assets/FlxAssets/duplicateFileName/subfolder1/file.txt rename to tests/unit/assets/FlxAssetPaths/fileWithMultipleDots/file.png.txt diff --git a/tests/unit/assets/FlxAssets/invisibleFile/.file b/tests/unit/assets/FlxAssetPaths/invisibleFile/.file similarity index 100% rename from tests/unit/assets/FlxAssets/invisibleFile/.file rename to tests/unit/assets/FlxAssetPaths/invisibleFile/.file diff --git a/tests/unit/assets/FlxAssets/duplicateFileName/subfolder2/file.txt b/tests/unit/assets/FlxAssets/duplicateFileName/subfolder2/file.txt deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/unit/src/flixel/system/FlxAssetsTest.hx b/tests/unit/src/flixel/system/FlxAssetsTest.hx deleted file mode 100644 index 14dff248f9..0000000000 --- a/tests/unit/src/flixel/system/FlxAssetsTest.hx +++ /dev/null @@ -1,16 +0,0 @@ -package flixel.system; - -import massive.munit.Assert; - -class FlxAssetsTest extends FlxTest -{ - @Test - function testFileReferencesIgnoreInvisibleFiles() - { - var files:Int = Type.getClassFields(InvisibleFile).length; - Assert.areEqual(0, files); - } -} - -@:build(flixel.system.FlxAssets.buildFileReferences("assets/FlxAssets/invisibleFile")) -class InvisibleFile {} diff --git a/tests/unit/src/flixel/system/macros/FlxAssetPathsTest.hx b/tests/unit/src/flixel/system/macros/FlxAssetPathsTest.hx new file mode 100644 index 0000000000..7205241398 --- /dev/null +++ b/tests/unit/src/flixel/system/macros/FlxAssetPathsTest.hx @@ -0,0 +1,26 @@ +package flixel.system.macros; + +import massive.munit.Assert; + +class FlxAssetPathsTest extends FlxTest +{ + @Test + function testIgnoreInvisibleFiles() + { + var files:Int = Type.getClassFields(InvisibleFile).length; + Assert.areEqual(0, files); + } + + @Test // #2107 + function testExtensionFilterWithMultiDotFile() + { + var files:Int = Type.getClassFields(ExtensionFilterWithMultiDotFile).length; + Assert.areEqual(1, files); + } +} + +@:build(flixel.system.FlxAssets.buildFileReferences("assets/FlxAssetPaths/invisibleFile")) +class InvisibleFile {} + +@:build(flixel.system.FlxAssets.buildFileReferences("assets/FlxAssetPaths/fileWithMultipleDots", false, ["txt"])) +class ExtensionFilterWithMultiDotFile {} \ No newline at end of file