File indexing completed on 2024-04-28 12:40:12

0001 /*
0002     SPDX-FileCopyrightText: 2005-2006 Richard Lärkäng <nouseforaname@home.se>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "cdinfotest.h"
0008 #include <QTest>
0009 #include "libkcddb/cdinfo.h"
0010 
0011 using namespace KCDDB;
0012 
0013 void CDInfoTest::testLongLines()
0014 {
0015     CDInfo info;
0016 
0017     QString str;
0018 
0019     TrackInfo& tinfo = info.track(0);
0020 
0021     for (int i=0; i <= 100; i++)
0022     {
0023         str.fill(QLatin1Char('A'),10*i);
0024         info.set(Title, str);
0025         str.fill(QLatin1Char('B'),10*i);
0026         str.append(QLatin1Char('\n'));
0027         info.set(Comment, str);
0028         str.fill(QLatin1Char('C'),10*i);
0029         info.set(Artist, str);
0030         str.fill(QLatin1Char('D'),10*i);
0031         info.set(Genre, str);
0032         str.fill(QLatin1Char('E'),10*i);
0033         info.set(Length, str);
0034         str.fill(QLatin1Char('F'),10*i);
0035         str.append(QLatin1Char('\n'));
0036         info.set(QString::fromUtf8("custom"), str);
0037         str.fill(QLatin1Char('G'),10*i);
0038         tinfo.set(Title, str);
0039         str.fill(QLatin1Char('H'),10*i);
0040         str.append(QLatin1Char('\n'));
0041         tinfo.set(QString::fromUtf8("custom"), str);
0042         QString data = info.toString();
0043         QString submitData = info.toString(true);
0044 
0045         CDInfo info2;
0046         info2.load(data);
0047         str.fill(QLatin1Char('A'),10*i);
0048         QCOMPARE(info2.get(Title).toString(), str);
0049         str.fill(QLatin1Char('B'),10*i);
0050         str.append(QLatin1Char('\n'));
0051         QCOMPARE(info2.get(Comment).toString(), str);
0052         str.fill(QLatin1Char('C'),10*i);
0053         QCOMPARE(info2.get(Artist).toString(), str);
0054         str.fill(QLatin1Char('D'),10*i);
0055         if (i == 0)
0056             QCOMPARE(info2.get(Genre).toString(), QString::fromUtf8("Unknown"));
0057         else
0058             QCOMPARE(info2.get(Genre).toString(), str);
0059         str.fill(QLatin1Char('E'),10*i);
0060         QCOMPARE(info2.get(Length).toString(), str);
0061         str.fill(QLatin1Char('F'),10*i);
0062         str.append(QLatin1Char('\n'));
0063         QCOMPARE(info2.get(QString::fromUtf8("custom")).toString(), str);
0064         str.fill(QLatin1Char('G'),10*i);
0065         QCOMPARE(info2.track(0).get(Title).toString(), str);
0066         const CDInfo info3(info2);
0067         QCOMPARE(info3.track(0).get(Title).toString(), str);
0068         str.fill(QLatin1Char('H'),10*i);
0069         str.append(QLatin1Char('\n'));
0070         QCOMPARE(info2.track(0).get(QString::fromUtf8("custom")).toString(), str);
0071 
0072         QVERIFY(!submitData.contains(QString::fromUtf8("CUSTOM")));
0073         QVERIFY(data.contains(QString::fromUtf8("CUSTOM")));
0074     }
0075 }
0076 
0077 QTEST_GUILESS_MAIN(CDInfoTest)
0078 
0079 #include "moc_cdinfotest.cpp"