Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
Plasma Mobile
Angelfish
Commits
371ea9b5
Commit
371ea9b5
authored
Mar 03, 2020
by
Jonah Brüchert
🌳
Committed by
Rinigus Saar
Mar 03, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Some final cosmetic changes + add dbmanager test
parent
889cbc90
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
125 additions
and
20 deletions
+125
-20
autotests/CMakeLists.txt
autotests/CMakeLists.txt
+4
-4
autotests/dbmanagertest.cpp
autotests/dbmanagertest.cpp
+102
-0
src/bookmarkshistorymodel.cpp
src/bookmarkshistorymodel.cpp
+1
-1
src/browsermanager.cpp
src/browsermanager.cpp
+6
-3
src/browsermanager.h
src/browsermanager.h
+2
-2
src/contents/ui/WebView.qml
src/contents/ui/WebView.qml
+1
-1
src/dbmanager.cpp
src/dbmanager.cpp
+4
-4
src/dbmanager.h
src/dbmanager.h
+2
-2
src/iconimageprovider.cpp
src/iconimageprovider.cpp
+2
-2
src/sqlquerymodel.cpp
src/sqlquerymodel.cpp
+1
-1
No files found.
autotests/CMakeLists.txt
View file @
371ea9b5
...
...
@@ -4,10 +4,10 @@ find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Test Sql Gui Quick)
include_directories
(
../src
)
#
ecm_add_test(
urlmodel
test.cpp ../src/
url
model.cpp
#
TEST_NAME
urlmodel
test
#
LINK_LIBRARIES Qt5::Test
#
)
ecm_add_test
(
dbmanager
test.cpp ../src/
dbmanager.cpp ../src/iconimageprovider.cpp ../src/sqlquery
model.cpp
TEST_NAME
dbmanager
test
LINK_LIBRARIES Qt5::Test
Qt5::Sql Qt5::Quick
)
ecm_add_test
(
useragenttest.cpp ../src/useragent.cpp
TEST_NAME useragenttest
...
...
autotests/dbmanagertest.cpp
0 → 100644
View file @
371ea9b5
/*
* Copyright 2020 Jonah Brüchert <jbb@kaidan.im>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License version 2 as published by the Free Software Foundation;
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
#include <QtTest/QTest>
#include <QSignalSpy>
#include <QCoreApplication>
#include <QStandardPaths>
#include "dbmanager.h"
#include "sqlquerymodel.h"
class
TabsModelTest
:
public
QObject
{
Q_OBJECT
private
Q_SLOTS
:
void
initTestCase
()
{
QCoreApplication
::
setOrganizationName
(
"autotests"
);
QCoreApplication
::
setApplicationName
(
"angelfish_dbmanagertest"
);
QDir
dir
(
QStandardPaths
::
writableLocation
(
QStandardPaths
::
AppLocalDataLocation
));
dir
.
mkpath
(
"."
);
m_dbmanager
=
new
DBManager
();
}
void
testAddBookmark
()
{
QSignalSpy
spy
(
m_dbmanager
,
&
DBManager
::
databaseTableChanged
);
m_dbmanager
->
addBookmark
({{
"url"
,
"https://kde.org"
},
{
"title"
,
"KDE"
},
{
"icon"
,
"TESTDATA"
}});
QCOMPARE
(
spy
.
count
(),
1
);
}
void
testAddToHistory
()
{
QSignalSpy
spy
(
m_dbmanager
,
&
DBManager
::
databaseTableChanged
);
m_dbmanager
->
addToHistory
({{
"url"
,
"https://kde.org"
},
{
"title"
,
"KDE"
},
{
"icon"
,
"TESTDATA"
}});
QCOMPARE
(
spy
.
count
(),
1
);
}
void
testLastVisited
()
{
QSignalSpy
spy
(
m_dbmanager
,
&
DBManager
::
databaseTableChanged
);
m_dbmanager
->
updateLastVisited
(
"https://kde.org"
);
// Will be updated in both tables
QCOMPARE
(
spy
.
count
(),
2
);
}
void
testRemoveBookmark
()
{
QSignalSpy
spy
(
m_dbmanager
,
&
DBManager
::
databaseTableChanged
);
m_dbmanager
->
removeBookmark
(
"https://kde.org"
);
QCOMPARE
(
spy
.
count
(),
1
);
}
void
testRemoveFromHistory
()
{
QSignalSpy
spy
(
m_dbmanager
,
&
DBManager
::
databaseTableChanged
);
m_dbmanager
->
removeBookmark
(
"https://kde.org"
);
QCOMPARE
(
spy
.
count
(),
1
);
}
void
testSqlQueryModelRoleNames
()
{
auto
model
=
new
SqlQueryModel
();
model
->
setQuery
(
QSqlQuery
(
"SELECT * FROM history"
));
QHash
<
int
,
QByteArray
>
expectedRoleNames
=
{
{
Qt
::
UserRole
+
1
,
"url"
},
{
Qt
::
UserRole
+
2
,
"title"
},
{
Qt
::
UserRole
+
3
,
"icon"
},
{
Qt
::
UserRole
+
4
,
"lastVisited"
}
};
QCOMPARE
(
model
->
roleNames
(),
expectedRoleNames
);
}
private:
DBManager
*
m_dbmanager
;
};
QTEST_MAIN
(
TabsModelTest
);
#include "dbmanagertest.moc"
src/bookmarkshistorymodel.cpp
View file @
371ea9b5
...
...
@@ -27,7 +27,7 @@
#include <QDebug>
#include <QSqlError>
constexpr
int
QUERY_LIMIT
=
1000
;
constexpr
int
QUERY_LIMIT
=
1000
;
BookmarksHistoryModel
::
BookmarksHistoryModel
()
{
...
...
src/browsermanager.cpp
View file @
371ea9b5
...
...
@@ -28,7 +28,10 @@
BrowserManager
*
BrowserManager
::
s_instance
=
nullptr
;
BrowserManager
::
BrowserManager
(
QObject
*
parent
)
:
QObject
(
parent
),
m_dbmanager
(
new
DBManager
),
m_settings
(
new
QSettings
(
this
))
BrowserManager
::
BrowserManager
(
QObject
*
parent
)
:
QObject
(
parent
)
,
m_dbmanager
(
new
DBManager
)
,
m_settings
(
new
QSettings
(
this
))
{
connect
(
m_dbmanager
,
&
DBManager
::
databaseTableChanged
,
this
,
&
BrowserManager
::
databaseTableChanged
);
}
...
...
@@ -61,9 +64,9 @@ void BrowserManager::removeFromHistory(const QString &url)
m_dbmanager
->
removeFromHistory
(
url
);
}
void
BrowserManager
::
l
astVisited
(
const
QString
&
url
)
void
BrowserManager
::
updateL
astVisited
(
const
QString
&
url
)
{
m_dbmanager
->
l
astVisited
(
url
);
m_dbmanager
->
updateL
astVisited
(
url
);
}
void
BrowserManager
::
updateIcon
(
const
QString
&
url
,
const
QString
&
iconSource
)
...
...
src/browsermanager.h
View file @
371ea9b5
/***************************************************************************
/***************************************************************************
* *
* Copyright 2014 Sebastian Kügler <sebas@kde.org> *
* *
...
...
@@ -73,7 +73,7 @@ public slots:
void
addToHistory
(
const
QVariantMap
&
pagedata
);
void
removeFromHistory
(
const
QString
&
url
);
void
l
astVisited
(
const
QString
&
url
);
void
updateL
astVisited
(
const
QString
&
url
);
void
updateIcon
(
const
QString
&
url
,
const
QString
&
iconSource
);
void
setHomepage
(
const
QString
&
homepage
);
...
...
src/contents/ui/WebView.qml
View file @
371ea9b5
...
...
@@ -173,7 +173,7 @@ WebEngineView {
request
.
icon
=
currentWebView
.
icon
;
request
.
lastVisited
=
new
Date
();
BrowserManager
.
addToHistory
(
request
);
BrowserManager
.
l
astVisited
(
currentWebView
.
url
);
BrowserManager
.
updateL
astVisited
(
currentWebView
.
url
);
}
grabThumb
();
}
...
...
src/dbmanager.cpp
View file @
371ea9b5
...
...
@@ -192,7 +192,7 @@ void DBManager::updateIconRecord(const QString &table, const QString &url, const
emit
databaseTableChanged
(
table
);
}
void
DBManager
::
l
astVisitedRecord
(
const
QString
&
table
,
const
QString
&
url
)
void
DBManager
::
setL
astVisitedRecord
(
const
QString
&
table
,
const
QString
&
url
)
{
if
(
url
.
isEmpty
())
return
;
...
...
@@ -226,10 +226,10 @@ void DBManager::removeFromHistory(const QString &url)
removeRecord
(
QStringLiteral
(
"history"
),
url
);
}
void
DBManager
::
l
astVisited
(
const
QString
&
url
)
void
DBManager
::
updateL
astVisited
(
const
QString
&
url
)
{
l
astVisitedRecord
(
QStringLiteral
(
"bookmarks"
),
url
);
l
astVisitedRecord
(
QStringLiteral
(
"history"
),
url
);
setL
astVisitedRecord
(
QStringLiteral
(
"bookmarks"
),
url
);
setL
astVisitedRecord
(
QStringLiteral
(
"history"
),
url
);
}
void
DBManager
::
updateIcon
(
const
QString
&
url
,
const
QString
&
iconSource
)
...
...
src/dbmanager.h
View file @
371ea9b5
...
...
@@ -49,7 +49,7 @@ public:
void
removeFromHistory
(
const
QString
&
url
);
void
updateIcon
(
const
QString
&
url
,
const
QString
&
iconSource
);
void
l
astVisited
(
const
QString
&
url
);
void
updateL
astVisited
(
const
QString
&
url
);
private:
// version of database schema
...
...
@@ -73,7 +73,7 @@ private:
void
addRecord
(
const
QString
&
table
,
const
QVariantMap
&
pagedata
);
void
removeRecord
(
const
QString
&
table
,
const
QString
&
url
);
void
updateIconRecord
(
const
QString
&
table
,
const
QString
&
url
,
const
QString
&
iconSource
);
void
l
astVisitedRecord
(
const
QString
&
table
,
const
QString
&
url
);
void
setL
astVisitedRecord
(
const
QString
&
table
,
const
QString
&
url
);
};
#endif // DBMANAGER_H
src/iconimageprovider.cpp
View file @
371ea9b5
...
...
@@ -137,7 +137,7 @@ QImage IconImageProvider::requestImage(const QString &id, QSize *size, const QSi
qWarning
()
<<
Q_FUNC_INFO
<<
"Failed to execute SQL statement"
;
qWarning
()
<<
query
.
lastQuery
();
qWarning
()
<<
query
.
lastError
();
return
QImage
()
;
return
{}
;
}
if
(
query
.
next
())
{
...
...
@@ -150,5 +150,5 @@ QImage IconImageProvider::requestImage(const QString &id, QSize *size, const QSi
}
qWarning
()
<<
"Failed to find icon for"
<<
id
;
return
QImage
()
;
return
{}
;
}
src/sqlquerymodel.cpp
View file @
371ea9b5
...
...
@@ -55,7 +55,7 @@ QVariant SqlQueryModel::data(const QModelIndex &index, int role) const
QModelIndex
modelIndex
=
this
->
index
(
index
.
row
(),
columnIdx
);
return
QSqlQueryModel
::
data
(
modelIndex
,
Qt
::
DisplayRole
);
}
return
QVariant
()
;
return
{}
;
}
QHash
<
int
,
QByteArray
>
SqlQueryModel
::
roleNames
()
const
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment