forked from qt-creator/qt-creator
Vcs: Make VcsBaseEditorWidget::test* operate on factories directly
Saves re-discovery by id. Change-Id: I026c1388d02f125147a9b4f5367d7a1a266bff3c Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
@@ -716,7 +716,7 @@ void BazaarPlugin::testDiffFileResolving_data()
|
||||
|
||||
void BazaarPlugin::testDiffFileResolving()
|
||||
{
|
||||
VcsBaseEditorWidget::testDiffFileResolving(diffEditorParameters.id);
|
||||
VcsBaseEditorWidget::testDiffFileResolving(d->diffEditorFactory);
|
||||
}
|
||||
|
||||
void BazaarPlugin::testLogResolving()
|
||||
@@ -739,7 +739,7 @@ void BazaarPlugin::testLogResolving()
|
||||
" (gz) Set approved revision and vote \"Approve\" when using lp-propose\n"
|
||||
" --approve (Jonathan Lange)\n"
|
||||
);
|
||||
VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data, "6572", "6571");
|
||||
VcsBaseEditorWidget::testLogResolving(d->logEditorFactory, data, "6572", "6571");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -2578,7 +2578,7 @@ void ClearCasePlugin::testDiffFileResolving_data()
|
||||
|
||||
void ClearCasePlugin::testDiffFileResolving()
|
||||
{
|
||||
VcsBaseEditorWidget::testDiffFileResolving(diffEditorParameters.id);
|
||||
VcsBaseEditorWidget::testDiffFileResolving(dd->diffEditorFactory);
|
||||
}
|
||||
|
||||
void ClearCasePlugin::testLogResolving()
|
||||
@@ -2587,7 +2587,7 @@ void ClearCasePlugin::testLogResolving()
|
||||
"13-Sep.17:41 user1 create version \"src/plugins/clearcase/clearcaseeditor.h@@/main/branch1/branch2/9\" (baseline1, baseline2, ...)\n"
|
||||
"22-Aug.14:13 user2 create version \"src/plugins/clearcase/clearcaseeditor.h@@/main/branch1/branch2/8\" (baseline3, baseline4, ...)\n"
|
||||
);
|
||||
VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data,
|
||||
VcsBaseEditorWidget::testLogResolving(dd->logEditorFactory, data,
|
||||
"src/plugins/clearcase/clearcaseeditor.h@@/main/branch1/branch2/9",
|
||||
"src/plugins/clearcase/clearcaseeditor.h@@/main/branch1/branch2/8");
|
||||
}
|
||||
|
@@ -369,6 +369,7 @@ private:
|
||||
|
||||
CvsSettingsPage m_settingsPage{[this] { configurationChanged(); }, &m_settings};
|
||||
|
||||
public:
|
||||
VcsSubmitEditorFactory submitEditorFactory {
|
||||
submitParameters,
|
||||
[] { return new CvsSubmitEditor; },
|
||||
@@ -1575,7 +1576,7 @@ void CvsPlugin::testDiffFileResolving_data()
|
||||
|
||||
void CvsPlugin::testDiffFileResolving()
|
||||
{
|
||||
VcsBaseEditorWidget::testDiffFileResolving(diffEditorParameters.id);
|
||||
VcsBaseEditorWidget::testDiffFileResolving(dd->diffEditorFactory);
|
||||
}
|
||||
|
||||
void CvsPlugin::testLogResolving()
|
||||
@@ -1601,7 +1602,7 @@ void CvsPlugin::testLogResolving()
|
||||
"added latest commentary\n"
|
||||
"----------------------------\n"
|
||||
);
|
||||
VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data, "1.3", "1.2");
|
||||
VcsBaseEditorWidget::testLogResolving(dd->logEditorFactory, data, "1.3", "1.2");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -1973,7 +1973,7 @@ void GitPlugin::testDiffFileResolving_data()
|
||||
|
||||
void GitPlugin::testDiffFileResolving()
|
||||
{
|
||||
VcsBaseEditorWidget::testDiffFileResolving(commitTextEditorParameters.id);
|
||||
VcsBaseEditorWidget::testDiffFileResolving(dd->commitTextEditorFactory);
|
||||
}
|
||||
|
||||
void GitPlugin::testLogResolving()
|
||||
@@ -1999,7 +1999,7 @@ void GitPlugin::testLogResolving()
|
||||
" Signed-off-by: Junio C Hamano <gitster@pobox.com>\n"
|
||||
);
|
||||
|
||||
VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data,
|
||||
VcsBaseEditorWidget::testLogResolving(dd->logEditorFactory, data,
|
||||
"50a6b54c - Merge branch 'for-junio' of git://bogomips.org/git-svn",
|
||||
"3587b513 - Update draft release notes to 1.8.2");
|
||||
}
|
||||
|
@@ -222,6 +222,7 @@ private:
|
||||
|
||||
bool m_submitActionTriggered = false;
|
||||
|
||||
public:
|
||||
VcsSubmitEditorFactory submitEditorFactory {
|
||||
submitEditorParameters,
|
||||
[] { return new CommitEditor; },
|
||||
@@ -901,7 +902,7 @@ void MercurialPlugin::testDiffFileResolving_data()
|
||||
|
||||
void MercurialPlugin::testDiffFileResolving()
|
||||
{
|
||||
VcsBaseEditorWidget::testDiffFileResolving(diffEditorParameters.id);
|
||||
VcsBaseEditorWidget::testDiffFileResolving(dd->diffEditorFactory);
|
||||
}
|
||||
|
||||
void MercurialPlugin::testLogResolving()
|
||||
@@ -921,7 +922,7 @@ void MercurialPlugin::testLogResolving()
|
||||
"date: Sat Jan 19 04:08:16 2013 +0100\n"
|
||||
"summary: test-rebase: add another test for rebase with multiple roots\n"
|
||||
);
|
||||
VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data, "18473:692cbda1eb50", "18472:37100f30590f");
|
||||
VcsBaseEditorWidget::testLogResolving(dd->logEditorFactory, data, "18473:692cbda1eb50", "18472:37100f30590f");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -1783,7 +1783,7 @@ void PerforcePlugin::testLogResolving()
|
||||
"\n"
|
||||
" Comment\n"
|
||||
);
|
||||
VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data, "12345", "12344");
|
||||
VcsBaseEditorWidget::testLogResolving(dd->logEditorFactory, data, "12345", "12344");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@@ -324,6 +324,7 @@ private:
|
||||
|
||||
SubversionSettingsPage m_settingsPage{[this] { configurationChanged(); }, &m_settings};
|
||||
|
||||
public:
|
||||
VcsSubmitEditorFactory submitEditorFactory {
|
||||
submitParameters,
|
||||
[] { return new SubversionSubmitEditor; },
|
||||
@@ -1328,7 +1329,7 @@ void SubversionPlugin::testLogResolving()
|
||||
" expectations, remove XFail.\n"
|
||||
"\n"
|
||||
);
|
||||
VcsBaseEditorWidget::testLogResolving(logEditorParameters.id, data, "r1439551", "r1439540");
|
||||
VcsBaseEditorWidget::testLogResolving(dd->logEditorFactory, data, "r1439551", "r1439540");
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@@ -82,15 +82,4 @@ VcsEditorFactory::VcsEditorFactory(const VcsBaseEditorParameters *parameters,
|
||||
setMarksVisible(false);
|
||||
}
|
||||
|
||||
VcsBaseEditor *VcsEditorFactory::createEditorById(const char *id)
|
||||
{
|
||||
for (IEditorFactory *factory : allEditorFactories()) {
|
||||
if (auto vcsFactory = qobject_cast<VcsEditorFactory *>(factory)) {
|
||||
if (vcsFactory->property("VcsEditorFactoryName").toByteArray() == id)
|
||||
return qobject_cast<VcsBaseEditor *>(factory->createEditor());
|
||||
}
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
} // namespace VcsBase
|
||||
|
@@ -43,8 +43,6 @@ public:
|
||||
VcsEditorFactory(const VcsBaseEditorParameters *parameters,
|
||||
const EditorWidgetCreator editorWidgetCreator,
|
||||
std::function<void(const QString &, const QString &)> describeFunc);
|
||||
|
||||
static VcsBaseEditor *createEditorById(const char *id);
|
||||
};
|
||||
|
||||
} // namespace VcsBase
|
||||
|
@@ -35,6 +35,7 @@
|
||||
#include <coreplugin/vcsmanager.h>
|
||||
#include <coreplugin/patchtool.h>
|
||||
#include <coreplugin/editormanager/editormanager.h>
|
||||
#include <coreplugin/editormanager/ieditorfactory.h>
|
||||
#include <cpaster/codepasterservice.h>
|
||||
#include <extensionsystem/pluginmanager.h>
|
||||
#include <projectexplorer/editorconfiguration.h>
|
||||
@@ -1626,9 +1627,11 @@ Core::IEditor *VcsBaseEditor::locateEditorByTag(const QString &tag)
|
||||
#ifdef WITH_TESTS
|
||||
#include <QTest>
|
||||
|
||||
void VcsBase::VcsBaseEditorWidget::testDiffFileResolving(const char *id)
|
||||
namespace VcsBase {
|
||||
|
||||
void VcsBaseEditorWidget::testDiffFileResolving(const VcsEditorFactory &factory)
|
||||
{
|
||||
VcsBaseEditor *editor = VcsBase::VcsEditorFactory::createEditorById(id);
|
||||
VcsBaseEditor *editor = qobject_cast<VcsBaseEditor *>(factory.createEditor());
|
||||
auto widget = qobject_cast<VcsBaseEditorWidget *>(editor->editorWidget());
|
||||
|
||||
QFETCH(QByteArray, header);
|
||||
@@ -1642,11 +1645,12 @@ void VcsBase::VcsBaseEditorWidget::testDiffFileResolving(const char *id)
|
||||
delete editor;
|
||||
}
|
||||
|
||||
void VcsBase::VcsBaseEditorWidget::testLogResolving(const char *id, QByteArray &data,
|
||||
const QByteArray &entry1,
|
||||
const QByteArray &entry2)
|
||||
void VcsBaseEditorWidget::testLogResolving(const VcsEditorFactory &factory,
|
||||
const QByteArray &data,
|
||||
const QByteArray &entry1,
|
||||
const QByteArray &entry2)
|
||||
{
|
||||
VcsBaseEditor *editor = VcsBase::VcsEditorFactory::createEditorById(id);
|
||||
VcsBaseEditor *editor = qobject_cast<VcsBaseEditor *>(factory.createEditor());
|
||||
auto widget = qobject_cast<VcsBaseEditorWidget *>(editor->editorWidget());
|
||||
|
||||
widget->textDocument()->setPlainText(QLatin1String(data));
|
||||
@@ -1655,6 +1659,9 @@ void VcsBase::VcsBaseEditorWidget::testLogResolving(const char *id, QByteArray &
|
||||
|
||||
delete editor;
|
||||
}
|
||||
|
||||
} // VcsBase
|
||||
|
||||
#endif
|
||||
|
||||
#include "vcsbaseeditor.moc"
|
||||
|
@@ -48,6 +48,7 @@ class BaseAnnotationHighlighter;
|
||||
class VcsBaseEditorWidget;
|
||||
class VcsBaseEditorConfig;
|
||||
class VcsCommand;
|
||||
class VcsEditorFactory;
|
||||
|
||||
// Documentation inside
|
||||
enum EditorContentType
|
||||
@@ -295,8 +296,11 @@ private:
|
||||
|
||||
#ifdef WITH_TESTS
|
||||
public:
|
||||
static void testDiffFileResolving(const char *id);
|
||||
static void testLogResolving(const char *id, QByteArray &data, const QByteArray &entry1, const QByteArray &entry2);
|
||||
static void testDiffFileResolving(const VcsEditorFactory &factory);
|
||||
static void testLogResolving(const VcsEditorFactory &factory,
|
||||
const QByteArray &data,
|
||||
const QByteArray &entry1,
|
||||
const QByteArray &entry2);
|
||||
#endif
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user