mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-06 03:07:04 +02:00
[PowerRename] Fix tests inconsistency, improve test performance (#8129)
* 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.
This commit is contained in:
committed by
GitHub
parent
4403876320
commit
da22e21a0e
@@ -32,7 +32,7 @@ namespace PowerRenameManagerTests
|
||||
int depth;
|
||||
};
|
||||
|
||||
void RenameHelper(_In_ rename_pairs * renamePairs, _In_ int numPairs, _In_ std::wstring searchTerm, _In_ std::wstring replaceTerm, SYSTEMTIME LocalTime, _In_ DWORD flags)
|
||||
void RenameHelper(_In_ rename_pairs * renamePairs, _In_ int numPairs, _In_ std::wstring searchTerm, _In_ std::wstring replaceTerm, SYSTEMTIME fileTime, _In_ DWORD flags)
|
||||
{
|
||||
// Create a single item (in a temp directory) and verify rename works as expected
|
||||
CTestFileHelper testFileHelper;
|
||||
@@ -59,12 +59,11 @@ namespace PowerRenameManagerTests
|
||||
for (int i = 0; i < numPairs; i++)
|
||||
{
|
||||
CComPtr<IPowerRenameItem> item;
|
||||
CMockPowerRenameItem::CreateInstance(testFileHelper.GetFullPath(
|
||||
renamePairs[i].originalName)
|
||||
.c_str(),
|
||||
CMockPowerRenameItem::CreateInstance(testFileHelper.GetFullPath(renamePairs[i].originalName).c_str(),
|
||||
renamePairs[i].originalName.c_str(),
|
||||
renamePairs[i].depth,
|
||||
!renamePairs[i].isFile,
|
||||
fileTime,
|
||||
&item);
|
||||
|
||||
int itemId = 0;
|
||||
@@ -84,20 +83,21 @@ namespace PowerRenameManagerTests
|
||||
Assert::IsTrue(mgr->GetRenameRegEx(&renRegEx) == S_OK);
|
||||
renRegEx->PutFlags(flags);
|
||||
renRegEx->PutSearchTerm(searchTerm.c_str());
|
||||
if (isFileAttributesUsed(replaceTerm.c_str()) && SUCCEEDED(GetDatedFileName(newReplaceTerm, ARRAYSIZE(newReplaceTerm), replaceTerm.c_str(), LocalTime)))
|
||||
{
|
||||
renRegEx->PutReplaceTerm(newReplaceTerm);
|
||||
}
|
||||
else
|
||||
{
|
||||
renRegEx->PutReplaceTerm(replaceTerm.c_str());
|
||||
}
|
||||
Sleep(1000);
|
||||
renRegEx->PutReplaceTerm(replaceTerm.c_str());
|
||||
|
||||
// Perform the rename
|
||||
Assert::IsTrue(mgr->Rename(0) == S_OK);
|
||||
bool replaceSuccess = false;
|
||||
for (int step = 0; step < 20; step++)
|
||||
{
|
||||
replaceSuccess = mgr->Rename(0) == S_OK;
|
||||
if (replaceSuccess)
|
||||
{
|
||||
break;
|
||||
}
|
||||
Sleep(10);
|
||||
}
|
||||
|
||||
Sleep(1000);
|
||||
Assert::IsTrue(replaceSuccess);
|
||||
|
||||
// Verify the rename occurred
|
||||
for (int i = 0; i < numPairs; i++)
|
||||
@@ -128,7 +128,7 @@ namespace PowerRenameManagerTests
|
||||
CComPtr<IPowerRenameManager> mgr;
|
||||
Assert::IsTrue(CPowerRenameManager::s_CreateInstance(&mgr) == S_OK);
|
||||
CComPtr<IPowerRenameItem> item;
|
||||
CMockPowerRenameItem::CreateInstance(L"foo", L"foo", 0, false, &item);
|
||||
CMockPowerRenameItem::CreateInstance(L"foo", L"foo", 0, false, SYSTEMTIME{0}, &item);
|
||||
mgr->AddItem(item);
|
||||
Assert::IsTrue(mgr->Shutdown() == S_OK);
|
||||
}
|
||||
@@ -143,7 +143,7 @@ namespace PowerRenameManagerTests
|
||||
DWORD cookie = 0;
|
||||
Assert::IsTrue(mgr->Advise(mgrEvents, &cookie) == S_OK);
|
||||
CComPtr<IPowerRenameItem> item;
|
||||
CMockPowerRenameItem::CreateInstance(L"foo", L"foo", 0, false, &item);
|
||||
CMockPowerRenameItem::CreateInstance(L"foo", L"foo", 0, false, SYSTEMTIME{0}, &item);
|
||||
int itemId = 0;
|
||||
Assert::IsTrue(item->GetId(&itemId) == S_OK);
|
||||
mgr->AddItem(item);
|
||||
@@ -290,6 +290,7 @@ namespace PowerRenameManagerTests
|
||||
RenameHelper(renamePairs, ARRAYSIZE(renamePairs), L"foo", L"bar", SYSTEMTIME{ 2020, 7, 3, 22, 15, 6, 42, 453 }, DEFAULT_FLAGS | Lowercase | ExtensionOnly);
|
||||
}
|
||||
|
||||
|
||||
TEST_METHOD (VerifyFileAttributesNoPadding)
|
||||
{
|
||||
rename_pairs renamePairs[] = {
|
||||
@@ -311,26 +312,26 @@ namespace PowerRenameManagerTests
|
||||
TEST_METHOD (VerifyFileAttributesMonthandDayNames)
|
||||
{
|
||||
std::locale::global(std::locale(""));
|
||||
SYSTEMTIME LocalTime = { 2020, 1, 3, 1, 15, 6, 42, 453 };
|
||||
SYSTEMTIME fileTime = { 2020, 1, 3, 1, 15, 6, 42, 453 };
|
||||
wchar_t localeName[LOCALE_NAME_MAX_LENGTH];
|
||||
wchar_t result[MAX_PATH] = L"bar";
|
||||
wchar_t formattedDate[MAX_PATH];
|
||||
if (GetUserDefaultLocaleName(localeName, LOCALE_NAME_MAX_LENGTH) == 0)
|
||||
StringCchCopy(localeName, LOCALE_NAME_MAX_LENGTH, L"en_US");
|
||||
|
||||
GetDateFormatEx(localeName, NULL, &LocalTime, L"MMM", formattedDate, MAX_PATH, NULL);
|
||||
GetDateFormatEx(localeName, NULL, &fileTime, L"MMM", formattedDate, MAX_PATH, NULL);
|
||||
formattedDate[0] = towupper(formattedDate[0]);
|
||||
StringCchPrintf(result, MAX_PATH, TEXT("%s%s"), result, formattedDate);
|
||||
|
||||
GetDateFormatEx(localeName, NULL, &LocalTime, L"MMMM", formattedDate, MAX_PATH, NULL);
|
||||
|
||||
GetDateFormatEx(localeName, NULL, &fileTime, L"MMMM", formattedDate, MAX_PATH, NULL);
|
||||
formattedDate[0] = towupper(formattedDate[0]);
|
||||
StringCchPrintf(result, MAX_PATH, TEXT("%s-%s"), result, formattedDate);
|
||||
|
||||
GetDateFormatEx(localeName, NULL, &LocalTime, L"ddd", formattedDate, MAX_PATH, NULL);
|
||||
GetDateFormatEx(localeName, NULL, &fileTime, L"ddd", formattedDate, MAX_PATH, NULL);
|
||||
formattedDate[0] = towupper(formattedDate[0]);
|
||||
StringCchPrintf(result, MAX_PATH, TEXT("%s-%s"), result, formattedDate);
|
||||
|
||||
GetDateFormatEx(localeName, NULL, &LocalTime, L"dddd", formattedDate, MAX_PATH, NULL);
|
||||
GetDateFormatEx(localeName, NULL, &fileTime, L"dddd", formattedDate, MAX_PATH, NULL);
|
||||
formattedDate[0] = towupper(formattedDate[0]);
|
||||
StringCchPrintf(result, MAX_PATH, TEXT("%s-%s"), result, formattedDate);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user