wxWidgets/tests/controls/bitmapcomboboxtest.cpp
oneeyeman1 61ef150044 Implement GetStringSelection() in generic wxBitmapComboBox
Also update the test to avoid assuming that wxBitmapComboBox inherits
from wxComboBox, which now allows it to build (and pass) on all
platforms.

Closes https://github.com/wxWidgets/wxWidgets/pull/2057
2020-10-01 02:19:12 +02:00

111 lines
3.1 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: tests/controls/bitmapcomboboxtest.cpp
// Purpose: wxBitmapComboBox unit test
// Author: Steven Lamerton
// Created: 2010-07-15
// Copyright: (c) 2010 Steven Lamerton
///////////////////////////////////////////////////////////////////////////////
#include "testprec.h"
#if wxUSE_BITMAPCOMBOBOX
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#ifndef WX_PRECOMP
#include "wx/app.h"
#endif // WX_PRECOMP
#include "wx/bmpcbox.h"
#include "wx/artprov.h"
#include "textentrytest.h"
#include "itemcontainertest.h"
#include "asserthelper.h"
class BitmapComboBoxTestCase : public TextEntryTestCase,
public ItemContainerTestCase,
public CppUnit::TestCase
{
public:
BitmapComboBoxTestCase() { }
virtual void setUp() wxOVERRIDE;
virtual void tearDown() wxOVERRIDE;
private:
virtual wxTextEntry *GetTestEntry() const wxOVERRIDE { return m_combo; }
virtual wxWindow *GetTestWindow() const wxOVERRIDE { return m_combo; }
virtual wxItemContainer *GetContainer() const wxOVERRIDE { return m_combo; }
virtual wxWindow *GetContainerWindow() const wxOVERRIDE { return m_combo; }
virtual void CheckStringSelection(const char * WXUNUSED(sel)) wxOVERRIDE
{
// do nothing here, as explained in TextEntryTestCase comment, our
// GetStringSelection() is the wxChoice, not wxTextEntry, one and there
// is no way to return the selection contents directly
}
CPPUNIT_TEST_SUITE( BitmapComboBoxTestCase );
wxTEXT_ENTRY_TESTS();
wxITEM_CONTAINER_TESTS();
CPPUNIT_TEST( Bitmap );
CPPUNIT_TEST_SUITE_END();
void Bitmap();
wxBitmapComboBox *m_combo;
wxDECLARE_NO_COPY_CLASS(BitmapComboBoxTestCase);
};
wxREGISTER_UNIT_TEST_WITH_TAGS(BitmapComboBoxTestCase,
"[BitmapComboBoxTestCase][item-container]");
void BitmapComboBoxTestCase::setUp()
{
m_combo = new wxBitmapComboBox(wxTheApp->GetTopWindow(), wxID_ANY);
}
void BitmapComboBoxTestCase::tearDown()
{
wxDELETE(m_combo);
}
void BitmapComboBoxTestCase::Bitmap()
{
wxArrayString items;
items.push_back("item 0");
items.push_back("item 1");
// TODO: Add wxBitmapComboBoxBase::Append(wxArrayString )
for( unsigned int i = 0; i < items.size(); ++i )
m_combo->Append(items[i]);
CPPUNIT_ASSERT(!m_combo->GetItemBitmap(0).IsOk());
wxBitmap bitmap = wxArtProvider::GetIcon(wxART_INFORMATION, wxART_OTHER,
wxSize(16, 16));
m_combo->Append("item with bitmap", bitmap);
CPPUNIT_ASSERT(m_combo->GetItemBitmap(2).IsOk());
m_combo->Insert("item with bitmap", bitmap, 1);
CPPUNIT_ASSERT(m_combo->GetItemBitmap(1).IsOk());
m_combo->SetItemBitmap(0, bitmap);
CPPUNIT_ASSERT(m_combo->GetItemBitmap(0).IsOk());
CPPUNIT_ASSERT_EQUAL(wxSize(16, 16), m_combo->GetBitmapSize());
m_combo->SetSelection( 1 );
CPPUNIT_ASSERT_EQUAL( m_combo->GetStringSelection(), "item with bitmap" );
}
#endif //wxUSE_BITMAPCOMBOBOX