Warning, /pim/kube/views/calendar/tests/tst_eventeditor.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  *   Copyright 2017 Christian Mollekopf <mollekopf@kolabsys.com>
0003  *
0004  *   This program is free software; you can redistribute it and/or modify
0005  *   it under the terms of the GNU Library General Public License as
0006  *   published by the Free Software Foundation; either version 2, or
0007  *   (at your option) any later version.
0008  *
0009  *   This program is distributed in the hope that it will be useful,
0010  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0012  *   GNU Library General Public License for more details
0013  *
0014  *   You should have received a copy of the GNU Library General Public
0015  *   License along with this program; if not, write to the
0016  *   Free Software Foundation, Inc.,
0017  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
0018  */
0019 
0020 import QtQuick 2.7
0021 import QtTest 1.0
0022 import org.kube.test 1.0
0023 import org.kube.framework 1.0 as Kube
0024 import "../qml"
0025 
0026 ViewTestCase {
0027     id: testCase
0028     name: "EventEditor"
0029 
0030     Component {
0031         id: editorComponent
0032         EventEditor {
0033             focus: true
0034         }
0035     }
0036     Component {
0037         id: controllerComponent
0038         Kube.EventController {
0039         }
0040     }
0041 
0042     function test_1start() {
0043         var editor = createTemporaryObject(editorComponent, testCase, {})
0044         verify(editor)
0045     }
0046 
0047     function test_2loadStartDate() {
0048         var start = new Date(2018, 1, 1, 11, 30, 0)
0049         var end = new Date(2018, 1, 1, 12, 00, 0)
0050         var editor = createTemporaryObject(editorComponent, testCase, {editMode: false, start: start})
0051         verify(editor)
0052         var startDate = findChild(editor, "startDate");
0053         compare(startDate.dateTime, start)
0054 
0055         var endDate = findChild(editor, "endDate");
0056         compare(endDate.dateTime, end)
0057     }
0058 
0059     function test_3loadControllerDates() {
0060         var start = new Date(2018, 1, 1, 11, 30, 0)
0061         var end = new Date(2018, 1, 1, 12, 0, 0)
0062         var controller = createTemporaryObject(controllerComponent, testCase, {start: start, end: end, allDay: false})
0063         var editor = createTemporaryObject(editorComponent, testCase, {editMode: true, controller: controller})
0064         verify(editor)
0065 
0066         var startDate = findChild(editor, "startDate");
0067         compare(startDate.dateTime, start)
0068 
0069         var endDate = findChild(editor, "endDate");
0070         compare(endDate.dateTime, end)
0071     }
0072 
0073     function test_4roundLoadedDates() {
0074         var start = new Date(2018, 1, 1, 11, 33, 0)
0075         var startRounded = new Date(2018, 1, 1, 11, 30, 0)
0076         var end = new Date(2018, 1, 1, 11, 58, 0)
0077         var endRounded = new Date(2018, 1, 1, 12, 0, 0)
0078         var controller = createTemporaryObject(controllerComponent, testCase, {start: start, end: end, allDay: false})
0079         var editor = createTemporaryObject(editorComponent, testCase, {editMode: true, controller: controller})
0080         verify(editor)
0081 
0082         var startDate = findChild(editor, "startDate");
0083         compare(startDate.dateTime, startRounded)
0084 
0085         var endDate = findChild(editor, "endDate");
0086         compare(endDate.dateTime, endRounded)
0087     }
0088 
0089     function test_5endFollowsStartDate() {
0090         var start = new Date(2018, 1, 1, 11, 30, 0)
0091         var end = new Date(2018, 1, 1, 12, 00, 0)
0092         var editor = createTemporaryObject(editorComponent, testCase, {editMode: false, start: start})
0093         verify(editor)
0094         var startDate = findChild(editor, "startDate");
0095         compare(startDate.dateTime, start)
0096 
0097         var endDate = findChild(editor, "endDate");
0098         compare(endDate.dateTime, end)
0099 
0100         //Follows forward
0101         var newStart = new Date(2018, 1, 1, 12, 30, 0)
0102         var newEnd = new Date(2018, 1, 1, 13, 00, 0)
0103         endDate.notBefore = newStart
0104         compare(endDate.dateTime, newStart)
0105 
0106         //Doesn't follow back
0107         endDate.notBefore = start
0108         compare(endDate.dateTime, newStart)
0109     }
0110 
0111     Component {
0112         id: dateTimeChooserComponent
0113         DateTimeChooser {
0114 
0115         }
0116     }
0117 
0118     function test_6datePicker() {
0119         var midnight = new Date(2018, 1, 1, 0, 0, 0)
0120         var start = new Date(2018, 1, 1, 11, 33, 0)
0121         var startRounded = new Date(2018, 1, 1, 11, 30, 0)
0122         var end = new Date(2018, 1, 1, 11, 58, 0)
0123         var endRounded = new Date(2018, 1, 1, 12, 0, 0)
0124 
0125         var chooser = createTemporaryObject(dateTimeChooserComponent, testCase, {notBefore: midnight, initialValue: start, enableTime: true})
0126         compare(chooser.dateTime, startRounded)
0127 
0128         //Follow notBefore
0129         chooser.notBefore = end
0130         compare(chooser.dateTime, endRounded)
0131 
0132         //Don't follow back
0133         chooser.notBefore = start
0134         compare(chooser.dateTime, endRounded)
0135     }
0136 
0137 }