예제 #1
0
void SpinCtrlTestCase::Range()
{
    CPPUNIT_ASSERT_EQUAL(0, m_spin->GetMin());
    CPPUNIT_ASSERT_EQUAL(100, m_spin->GetMax());

    // Test that the value is adjusted to be inside the new valid range but
    // that this doesn't result in any events (as this is not something done by
    // the user).
    {
        EventCounter updatedSpin(m_spin, wxEVT_SPINCTRL);
        EventCounter updatedText(m_spin, wxEVT_TEXT);

        m_spin->SetRange(1, 10);
        CPPUNIT_ASSERT_EQUAL(1, m_spin->GetValue());

        CPPUNIT_ASSERT_EQUAL(0, updatedSpin.GetCount());
        CPPUNIT_ASSERT_EQUAL(0, updatedText.GetCount());
    }

    //Test negative ranges
    m_spin->SetRange(-10, 10);

    CPPUNIT_ASSERT_EQUAL(-10, m_spin->GetMin());
    CPPUNIT_ASSERT_EQUAL(10, m_spin->GetMax());

    //Test backwards ranges
    m_spin->SetRange(75, 50);

    CPPUNIT_ASSERT_EQUAL(75, m_spin->GetMin());
    CPPUNIT_ASSERT_EQUAL(50, m_spin->GetMax());
}
예제 #2
0
void SpinCtrlTestCase::NoEventsInCtor()
{
    // Verify that creating the control does not generate any events. This is
    // unexpected and shouldn't happen.
    wxWindow* const parent = m_spin->GetParent();
    delete m_spin;
    m_spin = new wxSpinCtrl;

    EventCounter updatedSpin(m_spin, wxEVT_SPINCTRL);
    EventCounter updatedText(m_spin, wxEVT_TEXT);

    m_spin->Create(parent, wxID_ANY, "",
                   wxDefaultPosition, wxDefaultSize, 0,
                   0, 100, 17);

    CPPUNIT_ASSERT_EQUAL(0, updatedSpin.GetCount());
    CPPUNIT_ASSERT_EQUAL(0, updatedText.GetCount());
}
예제 #3
0
void SpinCtrlTestCase::Value()
{
    EventCounter updatedSpin(m_spin, wxEVT_SPINCTRL);
    EventCounter updatedText(m_spin, wxEVT_TEXT);

    CPPUNIT_ASSERT_EQUAL(0, m_spin->GetValue());

    m_spin->SetValue(50);
    CPPUNIT_ASSERT_EQUAL(50, m_spin->GetValue());

    m_spin->SetValue(-10);
    CPPUNIT_ASSERT_EQUAL(0, m_spin->GetValue());

    m_spin->SetValue(110);
    CPPUNIT_ASSERT_EQUAL(100, m_spin->GetValue());

    // Calling SetValue() shouldn't have generated any events.
    CPPUNIT_ASSERT_EQUAL(0, updatedSpin.GetCount());
    CPPUNIT_ASSERT_EQUAL(0, updatedText.GetCount());
}
예제 #4
0
void SpinCtrlDoubleTestCase::Value()
{
    EventCounter updatedSpin(m_spin, wxEVT_SPINCTRLDOUBLE);
    EventCounter updatedText(m_spin, wxEVT_TEXT);

    m_spin->SetDigits(2);
    m_spin->SetIncrement(0.1);

    CPPUNIT_ASSERT_EQUAL(0.0, m_spin->GetValue());

    m_spin->SetValue(50.0);
    CPPUNIT_ASSERT_EQUAL(50.0, m_spin->GetValue());

    m_spin->SetValue(49.1);
    CPPUNIT_ASSERT_EQUAL(49.1, m_spin->GetValue());

    // Calling SetValue() shouldn't have generated any events.
    CPPUNIT_ASSERT_EQUAL(0, updatedSpin.GetCount());
    CPPUNIT_ASSERT_EQUAL(0, updatedText.GetCount());
}