1/* 2 * Copyright 2014, Haiku, Inc. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7#include "CalendarViewTest.h" 8 9#include <Application.h> 10#include <CalendarView.h> 11#include <Window.h> 12 13#include <cppunit/TestCaller.h> 14#include <cppunit/TestSuite.h> 15 16 17using namespace BPrivate; 18 19 20CalendarViewTest::CalendarViewTest() 21{ 22} 23 24 25CalendarViewTest::~CalendarViewTest() 26{ 27} 28 29 30void 31CalendarViewTest::TestSetters() 32{ 33 // TODO: CalendarView probably uses some other library, test that instead 34 BApplication app( 35 "application/x-vnd.CalendarViewTest_TestSetters.test"); 36 BWindow window(BRect(50,50,550,550), 37 "CalendarViewTest_TestSetters", B_TITLED_WINDOW, 38 B_QUIT_ON_WINDOW_CLOSE, 0); 39 BCalendarView *view = new BCalendarView("test"); 40 window.AddChild(view); 41 42 NextSubTest(); 43 view->SetDate(2004, 2, 29); 44 CPPUNIT_ASSERT_EQUAL(2004, view->Year()); 45 CPPUNIT_ASSERT_EQUAL(2, view->Month()); 46 CPPUNIT_ASSERT_EQUAL(29, view->Day()); 47 48 NextSubTest(); 49 // Moving from leap year to leap year on 29 feb. must not change day 50 view->SetYear(2008); 51 CPPUNIT_ASSERT_EQUAL(2008, view->Year()); 52 CPPUNIT_ASSERT_EQUAL(2, view->Month()); 53 CPPUNIT_ASSERT_EQUAL(29, view->Day()); 54 55 NextSubTest(); 56 // Moving from leap year to non-leap year on 29 feb. must go back to 28 57 view->SetYear(2014); 58 CPPUNIT_ASSERT_EQUAL(2014, view->Year()); 59 CPPUNIT_ASSERT_EQUAL(2, view->Month()); 60 CPPUNIT_ASSERT_EQUAL(28, view->Day()); 61 62 NextSubTest(); 63 view->SetDate(2014, 8, 31); 64 CPPUNIT_ASSERT_EQUAL(2014, view->Year()); 65 CPPUNIT_ASSERT_EQUAL(8, view->Month()); 66 CPPUNIT_ASSERT_EQUAL(31, view->Day()); 67 68 NextSubTest(); 69 // Moving to month with less days should adjust day 70 view->SetMonth(2); 71 CPPUNIT_ASSERT_EQUAL(2014, view->Year()); 72 CPPUNIT_ASSERT_EQUAL(2, view->Month()); 73 CPPUNIT_ASSERT_EQUAL(28, view->Day()); 74} 75 76 77/*static*/ void 78CalendarViewTest::AddTests(BTestSuite& parent) 79{ 80 CppUnit::TestSuite& suite = *new CppUnit::TestSuite("CalendarViewTest"); 81 82 suite.addTest(new CppUnit::TestCaller<CalendarViewTest>( 83 "CalendarViewTest::TestSetters", &CalendarViewTest::TestSetters)); 84 85 parent.addTest("CalendarViewTest", &suite); 86} 87