* Move retrieveing file attibutes to PowerRenameRegex
Move file attributes unit tests to PowerRenameRegexTests
Add file time field to MockPowerRenameItem
* Add file attributes unittests to PowerRenameManagerTests
* Change variable name
* Rearrange function arguments
* Check if file attributes are used only once
* Change variable name LocalTime -> fileTime, date -> time
* Set fileTime as a member of PowerRenameRegEx rather than passing as an argument
* Change function name isFileAttributesUsed() -> isFileTimeUsed()
Check before resetting fileTime
* Fix small bugs
* Fix typos
* Refactor for readability, move free calls to reachable places
* Fix search for area empty bug
searchTerm being empty is not an invalid argument rather it must return OK without any operation
Tests must check if Replace() returns S_OK becuase later it checks its result
* Check return values of method calls in PowerRenameManager
Remove received argments checks from some methods because argument being null or empty string doesnt mean it is invalid or method fails
* Fix formatting. Remove overlooked comment. Fix error message.
* Change HRESULT declarations according to coding style
* Fix unhandled case. Refactor.
* Add boost-regex library
* If enabled use boost lib for regex
Add property `_useBoostLib` to `CPowerRenameRegEx`. If enabled for
replacements with regular expressions the Boost Library is used instead
of the Standard Library.
* Extend signatures to create RegEx with Boost
Extend create and constructor singatures of `CPowerRenameRegEx` with an
option to enable (or disabled, which is default) the Boost Library.
* Verify Lookbehind fails with STD library
To verify that the boost library is disabled as expected, check if a
lookbehind fails.
* Add Unit tests for RegEx with Boost
Add unit tests to verify regex replacement with Boost Library. They are
copied and adapted from the Standard Library tests.
* Improve verify capturing groups test with Boost
It is possible to use a capturing group followed by numbers as
replacement if the group number is enclosed in curly braces.
Added test cases based on the Standard Library tests.
* Add useBoostLib to settings interface
* Get library option from settings object
* Reduce signatures of RegEx by "useBoost"
Remove the parameter added in 19105cf, as it became obsolete.
* Settings: Read useBoostLib from JSON file
* Add UseBoostLib Option to UI
* Boost Lib label states the regex syntax difference
* Fix Regex with Boost Lib tests
- Do not load settings another time in CPowerRenameRegEx ctor
- Set flag correctly in standard library regex tests
* Add "lookbehind" to dictionary
* change Library to lowercase, and also add a comment
As suggested by @enricogior.
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
* Change Library to lowercase and add a comment
As suggested by @enricogior.
Co-authored-by: Enrico Giordani <enricogior@users.noreply.github.com>
* Implement basic functionality
* Change approach.
move filter controls to manager
edit redrawing to always work with new GetVisibleItemCount() and GetVisibleItemByIndex() calls
* Fix performance issues. Some refactoring.
* Handle toggleAll correctly
* Handle dangling elements when filter is on
Make an item visible if it has at least one visible subitem
* Support filtering for selected and shouldRename
* Refactor for readability, remove useless member from PowerRenameUI
* Change variable names in PowerRenameUI for clarity
Use wrapper function RedrawItems() and SetItemCount() for consistency
* Handle result value properly in getVisibleItemByIndex()
* Add FlagsApplicable filter
* Add visual indication of filters
* Improve performance
Check if no filter is selected
Call SetItemCount() only when necessary
* Refactor for readability
* Get lock in setVisible()
* Change function names to camel case
* Change function names to start with uppercase
* Change filter behaviour when search area is empty
Show all elements when search area is empty and ShouldRename filter is selected
Avoid warnings
* Resolve conflicts
User has actually signed CLA, see #4722
* Clear capturing groups with more than 1 digit
* Fix issue in regex pattern
* Add unittest
* Fix regex patterns
* Edit unittest
* Fix regex pattern, add some tests
1efe5bff9f
It looks to me like the test cases just was also wrong and just wasn't updated with the fix.
I've modified some of the test cases to verify the expected behavior:
1) Slight refactor of the tests to pass in the SearchReplaceExpected and flags for the tests.
2) Using Assert::AreEqual instead of Assert::IsTrue for better error meesaging when failed.
3) Verifying that the behavior is the same with or without match all occurances when using *.
4) Verifying that without the `UseRegularExpressionsFlag` the `.*` characters get replaced, including when MatchAllOccurances is set.