101 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
///////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        tests/menu/accelentry.cpp
 | 
						|
// Purpose:     wxAcceleratorEntry unit test
 | 
						|
// Author:      Vadim Zeitlin
 | 
						|
// Created:     2010-12-03
 | 
						|
// Copyright:   (c) 2010 Vadim Zeitlin
 | 
						|
///////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
// headers
 | 
						|
// ----------------------------------------------------------------------------
 | 
						|
 | 
						|
#include "testprec.h"
 | 
						|
 | 
						|
#ifdef __BORLANDC__
 | 
						|
    #pragma hdrstop
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef WX_PRECOMP
 | 
						|
#endif // WX_PRECOMP
 | 
						|
 | 
						|
#include "wx/accel.h"
 | 
						|
 | 
						|
namespace
 | 
						|
{
 | 
						|
 | 
						|
void CheckAccelEntry(const wxAcceleratorEntry& accel, int keycode, int flags)
 | 
						|
{
 | 
						|
    CHECK( keycode == accel.GetKeyCode() );
 | 
						|
    CHECK( flags == accel.GetFlags() );
 | 
						|
}
 | 
						|
 | 
						|
} // anonymous namespace
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
 * Test the creation of accelerator keys using the Create function
 | 
						|
 */
 | 
						|
TEST_CASE( "wxAcceleratorEntry::Create", "[accelentry]" )
 | 
						|
{
 | 
						|
    wxAcceleratorEntry* pa;
 | 
						|
 | 
						|
    SECTION( "Correct behavior" )
 | 
						|
    {
 | 
						|
        pa = wxAcceleratorEntry::Create("Foo\tCtrl+Z");
 | 
						|
 | 
						|
        CHECK( pa );
 | 
						|
        CHECK( pa->IsOk() );
 | 
						|
        CheckAccelEntry(*pa, 'Z', wxACCEL_CTRL);
 | 
						|
    }
 | 
						|
 | 
						|
    SECTION( "Tab missing" )
 | 
						|
    {
 | 
						|
        pa = wxAcceleratorEntry::Create("Shift-Q");
 | 
						|
 | 
						|
        CHECK( !pa );
 | 
						|
    }
 | 
						|
 | 
						|
    SECTION( "No accelerator key specified" )
 | 
						|
    {
 | 
						|
        pa = wxAcceleratorEntry::Create("bloordyblop");
 | 
						|
 | 
						|
        CHECK( !pa );
 | 
						|
    }
 | 
						|
 | 
						|
    SECTION( "Display name parsing" )
 | 
						|
    {
 | 
						|
        pa = wxAcceleratorEntry::Create("Test\tBackSpace");
 | 
						|
 | 
						|
        CHECK( pa );
 | 
						|
        CHECK( pa->IsOk() );
 | 
						|
        CheckAccelEntry(*pa, WXK_BACK, wxACCEL_NORMAL);
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/*
 | 
						|
 * Test the creation of accelerator keys from strings and also the
 | 
						|
 * creation of strings from an accelerator key
 | 
						|
 */
 | 
						|
TEST_CASE( "wxAcceleratorEntry::StringTests", "[accelentry]" )
 | 
						|
{
 | 
						|
    wxAcceleratorEntry a(wxACCEL_ALT, 'X');
 | 
						|
 | 
						|
    SECTION( "Create string from key" )
 | 
						|
    {
 | 
						|
        CHECK( "Alt+X" == a.ToString() );
 | 
						|
    }
 | 
						|
 | 
						|
    SECTION( "Create from valid string" )
 | 
						|
    {
 | 
						|
        CHECK( a.FromString("Alt+Shift+F1") );
 | 
						|
        CheckAccelEntry(a, WXK_F1, wxACCEL_ALT | wxACCEL_SHIFT);
 | 
						|
    }
 | 
						|
 | 
						|
    SECTION( "Create from invalid string" )
 | 
						|
    {
 | 
						|
        CHECK( !a.FromString("bloordyblop") );
 | 
						|
    }
 | 
						|
}
 |