You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
5.0 KiB
163 lines
5.0 KiB
/* This file is part of the KDE project
|
|
Copyright (C) 2005 David Faure <faure@kde.org>
|
|
|
|
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.
|
|
*/
|
|
|
|
// KoUserStyle/KoUserStyleCollection test
|
|
|
|
#include <kunittest/runner.h>
|
|
#include <kunittest/module.h>
|
|
|
|
#include <KoUserStyleCollection.h>
|
|
#include <KoUserStyle.h>
|
|
#include <kdebug.h>
|
|
#include <kglobal.h>
|
|
|
|
#include "KoUserStyleTester.h"
|
|
#include "KoUserStyleTester.moc"
|
|
|
|
KUNITTEST_MODULE(kunittest_KoUserStyleTester, "KoUserStyle Tester");
|
|
KUNITTEST_MODULE_REGISTER_TESTER(KoUserStyleTester);
|
|
|
|
#undef COMPARE
|
|
/// for source-compat with qttestlib: use COMPARE(x,y) if you plan to port to qttestlib later.
|
|
#define COMPARE CHECK
|
|
|
|
/// for source-compat with qttestlib: use VERIFY(x) if you plan to port to qttestlib later.
|
|
#undef VERIFY
|
|
#define VERIFY( x ) CHECK( x, true )
|
|
|
|
void KoUserStyleTester::testEmptyCollection()
|
|
{
|
|
KoUserStyleCollection coll( "test" );
|
|
VERIFY( coll.isEmpty() );
|
|
COMPARE( coll.count(), 0 );
|
|
VERIFY( coll.styleList().isEmpty() );
|
|
}
|
|
|
|
void KoUserStyleTester::testAddStyle()
|
|
{
|
|
KoUserStyleCollection coll( "test" );
|
|
|
|
KoUserStyle* style = new KoUserStyle( "test1" );
|
|
COMPARE( style->name(), TQString( "test1" ) );
|
|
COMPARE( style->displayName(), TQString( "test1" ) );
|
|
const TQString displayName = "A lovely name";
|
|
style->setDisplayName( displayName );
|
|
COMPARE( style->displayName(), displayName );
|
|
|
|
KoUserStyle* ret = coll.addStyle( style );
|
|
COMPARE( ret, style );
|
|
|
|
KoUserStyle* style2 = new KoUserStyle( "test1" );
|
|
COMPARE( style2->name(), TQString( "test1" ) );
|
|
style2->setDisplayName( displayName );
|
|
ret = coll.addStyle( style2 );
|
|
// here style2 got deleted.
|
|
COMPARE( ret, style );
|
|
|
|
VERIFY( !coll.isEmpty() );
|
|
COMPARE( coll.count(), 1 );
|
|
COMPARE( (int)coll.styleList().count(), 1 );
|
|
|
|
// Add another style for good this time
|
|
KoUserStyle* style3 = new KoUserStyle( "test3" );
|
|
COMPARE( style3->name(), TQString( "test3" ) );
|
|
ret = coll.addStyle( style3 );
|
|
|
|
TQStringList displayNames = coll.displayNameList();
|
|
COMPARE( (int)displayNames.count(), 2 );
|
|
COMPARE( displayNames[0], displayName );
|
|
COMPARE( displayNames[1], style3->name() );
|
|
}
|
|
|
|
void KoUserStyleTester::testFindStyle()
|
|
{
|
|
KoUserStyleCollection coll( "test" );
|
|
KoUserStyle* style = new KoUserStyle( "test1" );
|
|
const TQString displayName = "A lovely name";
|
|
style->setDisplayName( displayName );
|
|
coll.addStyle( style );
|
|
|
|
// --- findStyle tests ---
|
|
KoUserStyle* ret = coll.findStyle( "test1", TQString() );
|
|
COMPARE( ret, style );
|
|
|
|
ret = coll.findStyle( "foo", TQString() );
|
|
COMPARE( ret, (KoUserStyle*)0 );
|
|
|
|
ret = coll.findStyle( "foo", "test1" ); // fallback not used for style 'foo'
|
|
COMPARE( ret, (KoUserStyle*)0 );
|
|
|
|
ret = coll.findStyle( "test1", "test1" ); // fallback used for standard style test1
|
|
COMPARE( ret, style );
|
|
|
|
// --- findStyleByDisplayName tests ---
|
|
ret = coll.findStyleByDisplayName( displayName );
|
|
COMPARE( ret, style );
|
|
|
|
ret = coll.findStyleByDisplayName( "foo" );
|
|
COMPARE( ret, (KoUserStyle*)0 );
|
|
|
|
// --- indexOf tests ---
|
|
int pos = coll.indexOf( style );
|
|
COMPARE( pos, 0 );
|
|
|
|
KoUserStyle* style2 = new KoUserStyle( "test1" );
|
|
pos = coll.indexOf( style2 );
|
|
COMPARE( pos, -1 );
|
|
delete style2;
|
|
}
|
|
|
|
void KoUserStyleTester::testRemoveStyle()
|
|
{
|
|
KoUserStyleCollection coll( "test" );
|
|
KoUserStyle* style = new KoUserStyle( "test1" );
|
|
coll.addStyle( style );
|
|
COMPARE( coll.count(), 1 );
|
|
|
|
// Try removing an unrelated style (noop)
|
|
KoUserStyle* style2 = new KoUserStyle( "test1" );
|
|
coll.removeStyle( style2 );
|
|
delete style2;
|
|
COMPARE( coll.count(), 1 );
|
|
|
|
coll.removeStyle( style );
|
|
COMPARE( coll.count(), 0 );
|
|
}
|
|
|
|
void KoUserStyleTester::testReorder()
|
|
{
|
|
KoUserStyleCollection coll( "test" );
|
|
KoUserStyle* style = new KoUserStyle( "test1" );
|
|
coll.addStyle( style );
|
|
style = new KoUserStyle( "test2" );
|
|
coll.addStyle( style );
|
|
style = new KoUserStyle( "test3" );
|
|
coll.addStyle( style );
|
|
COMPARE( coll.count(), 3 );
|
|
|
|
TQStringList newOrder;
|
|
newOrder << "test3";
|
|
newOrder << "test2";
|
|
newOrder << "test1";
|
|
coll.updateStyleListOrder( newOrder );
|
|
COMPARE( coll.count(), 3 );
|
|
TQStringList displayNames = coll.displayNameList();
|
|
COMPARE( (int)displayNames.count(), 3 );
|
|
COMPARE( displayNames.join(","), newOrder.join(",") );
|
|
}
|