[users] New test for password-setting
- check new config for accepting empty and bogus passwords - check a config with minor pw checks for empty and bogus passwords
This commit is contained in:
parent
1dcf56761f
commit
5f2bbd179c
@ -19,6 +19,7 @@
|
||||
|
||||
#include "Config.h"
|
||||
|
||||
#include "JobQueue.h"
|
||||
#include "utils/Logger.h"
|
||||
|
||||
#include <QtTest/QtTest>
|
||||
@ -45,6 +46,7 @@ private Q_SLOTS:
|
||||
void testHostActions_data();
|
||||
void testHostActions();
|
||||
void testPasswordChecks();
|
||||
void testUserPassword();
|
||||
};
|
||||
|
||||
UserTests::UserTests() {}
|
||||
@ -136,7 +138,8 @@ UserTests::testHostActions()
|
||||
{
|
||||
m.insert( "setHostname", string );
|
||||
}
|
||||
QCOMPARE( getHostNameActions( m ), HostNameActions( result ) | HostNameAction::WriteEtcHosts ); // write bits default to true
|
||||
QCOMPARE( getHostNameActions( m ),
|
||||
HostNameActions( result ) | HostNameAction::WriteEtcHosts ); // write bits default to true
|
||||
m.insert( "writeHostsFile", false );
|
||||
QCOMPARE( getHostNameActions( m ), HostNameActions( result ) );
|
||||
m.insert( "writeHostsFile", true );
|
||||
@ -149,13 +152,63 @@ UserTests::testPasswordChecks()
|
||||
{
|
||||
PasswordCheckList l;
|
||||
QCOMPARE( l.length(), 0 );
|
||||
QVERIFY( !addPasswordCheck( "nonempty", QVariant(false), l ) ); // a silly setting
|
||||
QVERIFY( !addPasswordCheck( "nonempty", QVariant( false ), l ) ); // a silly setting
|
||||
QCOMPARE( l.length(), 0 );
|
||||
QVERIFY( addPasswordCheck( "nonempty", QVariant(true), l ) );
|
||||
QVERIFY( addPasswordCheck( "nonempty", QVariant( true ), l ) );
|
||||
QCOMPARE( l.length(), 1 );
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
UserTests::testUserPassword()
|
||||
{
|
||||
if ( !Calamares::JobQueue::instance() )
|
||||
{
|
||||
(void)new Calamares::JobQueue( nullptr );
|
||||
}
|
||||
|
||||
{
|
||||
Config c;
|
||||
|
||||
QVERIFY( c.userPassword().isEmpty() );
|
||||
QVERIFY( c.userPasswordSecondary().isEmpty() );
|
||||
// There are no validity checks, so no check for nonempty
|
||||
QCOMPARE( c.userPasswordValidity(), Config::PasswordValidity::Valid );
|
||||
|
||||
c.setUserPassword( "bogus" );
|
||||
QCOMPARE( c.userPasswordValidity(), Config::PasswordValidity::Invalid );
|
||||
QCOMPARE( c.userPassword(), "bogus" );
|
||||
c.setUserPasswordSecondary( "bogus" );
|
||||
QCOMPARE( c.userPasswordValidity(), Config::PasswordValidity::Valid );
|
||||
}
|
||||
|
||||
{
|
||||
Config c;
|
||||
|
||||
QVariantMap m;
|
||||
m.insert( "allowWeakPasswords", true );
|
||||
m.insert( "allowWeakPasswordsDefault", true );
|
||||
m.insert( "defaultGroups", QStringList { "wheel" } );
|
||||
|
||||
QVariantMap pwreq;
|
||||
pwreq.insert( "nonempty", true );
|
||||
pwreq.insert( "minLength", 6 );
|
||||
m.insert( "passwordRequirements", pwreq );
|
||||
|
||||
c.setConfigurationMap( m );
|
||||
|
||||
QVERIFY( c.userPassword().isEmpty() );
|
||||
QVERIFY( c.userPasswordSecondary().isEmpty() );
|
||||
// There is now a nonempty check, but weak passwords are ok
|
||||
QCOMPARE( c.userPasswordValidity(), int( Config::PasswordValidity::Weak ) );
|
||||
|
||||
c.setUserPassword( "bogus" );
|
||||
QCOMPARE( c.userPasswordValidity(), int( Config::PasswordValidity::Invalid ) );
|
||||
c.setUserPasswordSecondary( "bogus" );
|
||||
QCOMPARE( c.userPasswordValidity(), int( Config::PasswordValidity::Weak ) );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
QTEST_GUILESS_MAIN( UserTests )
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user