mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-11-25 09:13:16 -05:00
Feature: HTML export from CLI tool (#11590)
This commit introduces support for exporting a KeePassXC database in
HTML format via the CLI tool. The key changes include:
- Refactoring HtmlExporter:
- Moved HtmlExporter to the format directory and made its API
compatible with CsvExporter.
- Since the original HtmlExporter had a direct dependency on the
gui/Icons functions and indirect dependencies on the
gui/DatabaseIcons class, only the non-GUI parts were moved to
format/HtmlExporter.
- All icon-related functionality was encapsulated in a new child
class, gui/HtmlGuiExporter.
- The gui/HtmlGuiExporter retains the original functionality of the
HtmlExporter class.
- The format/HtmlExporter now generates HTML export without icons.
Adding icon support to format/HtmlExporter would require moving
icon management logic to the core, which could have broader
implications.
- CLI integration:
- Updated cli/Export to use format/HtmlExporter.
- GUI Integration:
- Updated gui/export/ExportDialog to use gui/HtmlGuiExporter.
- Build System Updates:
- Updated CMakeLists.txt to build HtmlExporter as part of core_SOURCES
and HtmlGuiExporter as part of gui_SOURCES.
- Testing:
- Updated TestCli to automatically verify the output of the HTML
export.
Signed-off-by: AdriandMartin <adriandmartin@protonmail.com>
This commit is contained in:
parent
5a3289ee3c
commit
ab6b6f36a0
9 changed files with 197 additions and 73 deletions
|
|
@ -1311,6 +1311,18 @@ void TestCli::testExport()
|
|||
QVERIFY(csvData.contains(QByteArray(
|
||||
"\"NewDatabase\",\"Sample Entry\",\"User Name\",\"Password\",\"http://www.somesite.com/\",\"Notes\"")));
|
||||
|
||||
// HTML exporting
|
||||
setInput("a");
|
||||
execCmd(exportCmd, {"export", "-f", "html", m_dbFile->fileName()});
|
||||
QByteArray htmlHeader = m_stdout->readLine();
|
||||
QVERIFY(htmlHeader.contains(QByteArray("<meta charset=\"UTF-8\"><title></title>")));
|
||||
QByteArray htmlBody = m_stdout->readAll();
|
||||
QVERIFY(htmlBody.contains(QByteArray("<h2>NewDatabase</h2>")));
|
||||
QVERIFY(htmlBody.contains(QByteArray("<caption>Sample Entry</caption>"
|
||||
"<tr><th>User name</th><td class=\"username\">User Name</td></tr>"
|
||||
"<tr><th>Password</th><td class=\"password\">Password</td></tr>"
|
||||
"<tr><th>URL</th><td class=\"url\"><a "
|
||||
"href=\"http://www.somesite.com/\">http://www.somesite.com/</a></td></tr>")));
|
||||
// test invalid format
|
||||
setInput("a");
|
||||
execCmd(exportCmd, {"export", "-f", "yaml", m_dbFile->fileName()});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue