[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: KDE/kdelibs/kdecore/tests
From:       "Thomas Braxton" <kde.braxton () gmail ! com>
Date:       2007-10-04 19:19:20
Message-ID: 928c3f1b0710041219v4a499ae9ucc3c4df40dfd2a13 () mail ! gmail ! com
[Download RAW message or body]

On 10/4/07, David Faure <faure@kde.org> wrote:
>
> SVN commit 721135 by dfaure:
>
> Today's quizz: KConfigGroup(c,"").group() == ?
>
> Answered by this unit test: it's "<default>", i.e. the toplevel entries in
> the config files.
> I thought we had support for the empty group ("[]" in the config file) but
> obviously not.
> Good I guess, one less thing to support. But then we could get rid of the
> "<default>" string altogether,
> and use the empty string instead, no?
> CCMAIL: kde-core-devel@kde.org
>
>
> M  +58 -1     kconfigtest.cpp
> M  +3 -0      kconfigtest.h
>
>
> --- trunk/KDE/kdelibs/kdecore/tests/kconfigtest.cpp #721134:721135
> @@ -19,6 +19,7 @@
>
> #include <qtest_kde.h>
> #include "kconfigtest.h"
> +#include <kstandarddirs.h>
> #include "kconfigtest.moc"
>
> #include <kconfig.h>
> @@ -287,7 +288,7 @@
>    QVERIFY( sc3.readEntry( "flags-bit0", KConfigTest::Flags() ) ==
> KConfigTest::bit0 );
>
>    int eid = staticMetaObject.indexOfEnumerator( "Flags" );
> -  Q_ASSERT( eid != -1 );
> +  QVERIFY( eid != -1 );
>    QMetaEnum me = staticMetaObject.enumerator( eid );
>    KConfigTest::Flags bitfield = KConfigTest::bit0|KConfigTest::bit1;
>
> @@ -398,6 +399,46 @@
>    QVERIFY( sc.entryMap("FooBar").isEmpty() ); //inexistant group
> }
>
> +void KConfigTest::testDefaultGroup()
> +{
> +    KConfig sc( "kconfigtest" );
> +    KConfigGroup defaultGroup(&sc, "<default>");
> +    QCOMPARE(defaultGroup.group(), QString("<default>"));
> +    QVERIFY(!defaultGroup.exists());
> +    defaultGroup.writeEntry("TestKey", "defaultGroup");
> +    QVERIFY(defaultGroup.exists());
> +    QCOMPARE(defaultGroup.readEntry("TestKey", QString()),
> QString("defaultGroup"));
> +    sc.sync();
> +
> +#ifdef Q_OS_UNIX
> +    QList<QByteArray> lines = readLines();
> +    QVERIFY(!lines.contains("[]"));
> +    QCOMPARE(lines.first(), QByteArray("TestKey=defaultGroup\n"));
> +#endif
> +
> +    defaultGroup.deleteGroup();
> +}
> +
> +void KConfigTest::testEmptyGroup()
> +{
> +    KConfig sc( "kconfigtest" );
> +    KConfigGroup emptyGroup(&sc, "");
> +    QCOMPARE(emptyGroup.group(), QString("<default>")); // confusing,
> heh?
> +    QVERIFY(!emptyGroup.exists());
> +    emptyGroup.writeEntry("TestKey", "emptyGroup");
> +    QVERIFY(emptyGroup.exists());
> +    QCOMPARE(emptyGroup.readEntry("TestKey", QString()),
> QString("emptyGroup"));
> +    sc.sync();
> +
> +#ifdef Q_OS_UNIX
> +    QList<QByteArray> lines = readLines();
> +    QVERIFY(!lines.contains("[]")); // there's no support for the []
> group, in fact.
> +#endif
> +
> +    emptyGroup.deleteGroup();
> +}
> +
> +
> void KConfigTest::testKAboutDataOrganizationDomain()
> {
>      KAboutData data( "app", 0, ki18n("program"), "version",
> @@ -412,3 +453,19 @@
>                        "http://edu.kde.org/kig" );
>      QCOMPARE( data2.organizationDomain(), QString::fromLatin1( "kde.org"
> ) );
> }
> +
> +QList<QByteArray> KConfigTest::readLines()
> +{
> +    const QString path = KStandardDirs::locateLocal("config",
> "kconfigtest");
> +    Q_ASSERT(!path.isEmpty());
> +    QFile file(path);
> +    Q_ASSERT(file.open(QIODevice::ReadOnly));
> +    QList<QByteArray> lines;
> +    QByteArray line;
> +    do {
> +        line = file.readLine();
> +        if (!line.isEmpty())
> +            lines.append(line);
> +    } while(!line.isEmpty());
> +    return lines;
> +}
> --- trunk/KDE/kdelibs/kdecore/tests/kconfigtest.h #721134:721135
> @@ -41,6 +41,8 @@
>      void testEnums();
>      void testInvalid();
>      void testDelete();
> +    void testDefaultGroup();
> +    void testEmptyGroup();
>      void testRevertAllEntries();
>      void testChangeGroup();
>
> @@ -48,6 +50,7 @@
>      void testKAboutDataOrganizationDomain();
> private:
>      void revertEntries();
> +    QList<QByteArray> readLines();
> };
> Q_DECLARE_OPERATORS_FOR_FLAGS(KConfigTest::Flags)
>
> did we ever support an empty group name? AFAIK that was translated
internally into <default>, no?

[Attachment #3 (text/html)]

<br><br><div><span class="gmail_quote">On 10/4/07, <b class="gmail_sendername">David \
Faure</b> &lt;<a href="mailto:faure@kde.org">faure@kde.org</a>&gt; \
wrote:</span><blockquote class="gmail_quote" \
style="margin:0;margin-left:0.8ex;border-left:1px #ccc solid;padding-left:1ex"> SVN \
commit 721135 by dfaure:<br><br>Today&#39;s quizz: \
KConfigGroup(c,&quot;&quot;).group() == ?<br><br>Answered by this unit test: it&#39;s \
&quot;&lt;default&gt;&quot;, i.e. the toplevel entries in the config files.<br>I \
thought we had support for the empty group (&quot;[]&quot; in the config file) but \
obviously not. <br>Good I guess, one less thing to support. But then we could get rid \
of the &quot;&lt;default&gt;&quot; string altogether,<br>and use the empty string \
instead, no?<br>CCMAIL: <a \
href="mailto:kde-core-devel@kde.org">kde-core-devel@kde.org </a><br><br><br> \
M&nbsp;&nbsp;+58 -1&nbsp;&nbsp;&nbsp;&nbsp; kconfigtest.cpp<br> M&nbsp;&nbsp;+3 \
-0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kconfigtest.h<br><br><br>--- \
trunk/KDE/kdelibs/kdecore/tests/kconfigtest.cpp #721134:721135<br>@@ -19,6 +19,7 \
@@<br><br> #include &lt;qtest_kde.h&gt;<br> #include &quot; \
kconfigtest.h&quot;<br>+#include &lt;kstandarddirs.h&gt;<br> #include \
&quot;kconfigtest.moc&quot;<br><br> #include &lt;kconfig.h&gt;<br>@@ -287,7 +288,7 \
@@<br>&nbsp;&nbsp; QVERIFY( sc3.readEntry( &quot;flags-bit0&quot;, \
KConfigTest::Flags() ) == KConfigTest::bit0 ); <br><br>&nbsp;&nbsp; int eid = \
staticMetaObject.indexOfEnumerator( &quot;Flags&quot; );<br>-&nbsp;&nbsp;Q_ASSERT( \
eid != -1 );<br>+&nbsp;&nbsp;QVERIFY( eid != -1 );<br>&nbsp;&nbsp; QMetaEnum me = \
staticMetaObject.enumerator( eid );<br>&nbsp;&nbsp; KConfigTest::Flags bitfield = \
KConfigTest::bit0|KConfigTest: :bit1;<br><br>@@ -398,6 +399,46 @@<br>&nbsp;&nbsp; \
QVERIFY( sc.entryMap(&quot;FooBar&quot;).isEmpty() ); //inexistant group<br> \
}<br><br>+void KConfigTest::testDefaultGroup()<br>+{<br>+&nbsp;&nbsp;&nbsp;&nbsp;KConfig \
sc( &quot;kconfigtest&quot; );<br> +&nbsp;&nbsp;&nbsp;&nbsp;KConfigGroup \
defaultGroup(&amp;sc, \
&quot;&lt;default&gt;&quot;);<br>+&nbsp;&nbsp;&nbsp;&nbsp;QCOMPARE(defaultGroup.group(), \
QString(&quot;&lt;default&gt;&quot;));<br>+&nbsp;&nbsp;&nbsp;&nbsp;QVERIFY(!defaultGro \
up.exists());<br>+&nbsp;&nbsp;&nbsp;&nbsp;defaultGroup.writeEntry(&quot;TestKey&quot;, \
&quot;defaultGroup&quot;); \
<br>+&nbsp;&nbsp;&nbsp;&nbsp;QVERIFY(defaultGroup.exists());<br>+&nbsp;&nbsp;&nbsp;&nbsp;QCOMPARE(defaultGroup.readEntry(&quot;TestKey&quot;, \
QString()), QString(&quot;defaultGroup&quot;));<br>+&nbsp;&nbsp;&nbsp;&nbsp;sc.sync();<br>+<br>+#ifdef \
Q_OS_UNIX<br>+&nbsp;&nbsp;&nbsp;&nbsp;QList&lt;QByteArray&gt; lines = readLines(); \
<br>+&nbsp;&nbsp;&nbsp;&nbsp;QVERIFY(!lines.contains(&quot;[]&quot;));<br>+&nbsp;&nbsp;&nbsp;&nbsp;QCOMPARE(lines.first(), \
QByteArray(&quot;TestKey=defaultGroup\n&quot;));<br>+#endif<br>+<br>+&nbsp;&nbsp;&nbsp;&nbsp;defaultGroup.deleteGroup();<br>+}<br>+<br>+void \
KConfigTest::testEmptyGroup() <br>+{<br>+&nbsp;&nbsp;&nbsp;&nbsp;KConfig sc( \
&quot;kconfigtest&quot; );<br>+&nbsp;&nbsp;&nbsp;&nbsp;KConfigGroup \
emptyGroup(&amp;sc, &quot;&quot;);<br>+&nbsp;&nbsp;&nbsp;&nbsp;QCOMPARE(emptyGroup.group(), \
QString(&quot;&lt;default&gt;&quot;)); // confusing, \
heh?<br>+&nbsp;&nbsp;&nbsp;&nbsp;QVERIFY(!emptyGroup.exists()); \
<br>+&nbsp;&nbsp;&nbsp;&nbsp;emptyGroup.writeEntry(&quot;TestKey&quot;, \
&quot;emptyGroup&quot;);<br>+&nbsp;&nbsp;&nbsp;&nbsp;QVERIFY(emptyGroup.exists());<br>+&nbsp;&nbsp;&nbsp;&nbsp;QCOMPARE(emptyGroup.readEntry(&quot;TestKey&quot;, \
QString()), QString(&quot;emptyGroup&quot;));<br> \
+&nbsp;&nbsp;&nbsp;&nbsp;sc.sync();<br>+<br>+#ifdef \
Q_OS_UNIX<br>+&nbsp;&nbsp;&nbsp;&nbsp;QList&lt;QByteArray&gt; lines = \
readLines();<br>+&nbsp;&nbsp;&nbsp;&nbsp;QVERIFY(!lines.contains(&quot;[]&quot;)); // \
there&#39;s no support for the [] group, in \
fact.<br>+#endif<br>+<br>+&nbsp;&nbsp;&nbsp;&nbsp; \
emptyGroup.deleteGroup();<br>+}<br>+<br>+<br> void \
KConfigTest::testKAboutDataOrganizationDomain()<br> {<br>&nbsp;&nbsp;&nbsp;&nbsp; \
KAboutData data( &quot;app&quot;, 0, ki18n(&quot;program&quot;), \
&quot;version&quot;,<br>@@ -412,3 +453,19 @@ \
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&quot;<a href="http://edu.kde.org/kig">http://edu.kde.org/kig</a>&quot; \
);<br>&nbsp;&nbsp;&nbsp;&nbsp; QCOMPARE( data2.organizationDomain(), \
QString::fromLatin1( &quot;<a href="http://kde.org">kde.org</a>&quot; ) ); <br> \
}<br>+<br>+QList&lt;QByteArray&gt; \
KConfigTest::readLines()<br>+{<br>+&nbsp;&nbsp;&nbsp;&nbsp;const QString path = \
KStandardDirs::locateLocal(&quot;config&quot;, \
&quot;kconfigtest&quot;);<br>+&nbsp;&nbsp;&nbsp;&nbsp;Q_ASSERT(!path.isEmpty());<br>+&nbsp;&nbsp;&nbsp;&nbsp;QFile \
file(path); <br>+&nbsp;&nbsp;&nbsp;&nbsp;Q_ASSERT(file.open(QIODevice::ReadOnly));<br>+&nbsp;&nbsp;&nbsp;&nbsp;QList&lt;QByteArray&gt; \
lines;<br>+&nbsp;&nbsp;&nbsp;&nbsp;QByteArray line;<br>+&nbsp;&nbsp;&nbsp;&nbsp;do \
{<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line = \
file.readLine();<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if \
(!line.isEmpty())<br>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lines.append
 (line);<br>+&nbsp;&nbsp;&nbsp;&nbsp;} \
while(!line.isEmpty());<br>+&nbsp;&nbsp;&nbsp;&nbsp;return lines;<br>+}<br>--- \
trunk/KDE/kdelibs/kdecore/tests/kconfigtest.h #721134:721135<br>@@ -41,6 +41,8 \
@@<br>&nbsp;&nbsp;&nbsp;&nbsp; void testEnums();<br>&nbsp;&nbsp;&nbsp;&nbsp; void \
testInvalid();<br>&nbsp;&nbsp;&nbsp;&nbsp; void testDelete(); \
<br>+&nbsp;&nbsp;&nbsp;&nbsp;void \
testDefaultGroup();<br>+&nbsp;&nbsp;&nbsp;&nbsp;void \
testEmptyGroup();<br>&nbsp;&nbsp;&nbsp;&nbsp; void \
testRevertAllEntries();<br>&nbsp;&nbsp;&nbsp;&nbsp; void testChangeGroup();<br><br>@@ \
-48,6 +50,7 @@<br>&nbsp;&nbsp;&nbsp;&nbsp; void \
testKAboutDataOrganizationDomain();<br> private:<br> &nbsp;&nbsp;&nbsp;&nbsp; void \
revertEntries();<br>+&nbsp;&nbsp;&nbsp;&nbsp;QList&lt;QByteArray&gt; readLines();<br> \
};<br> Q_DECLARE_OPERATORS_FOR_FLAGS(KConfigTest::Flags)<br><br></blockquote></div>did \
we ever support an empty group name? AFAIK that was translated internally into \
&lt;default&gt;, no?



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic