All Classes Namespaces Functions Variables Enumerations Properties Pages
test_colormanager.cpp
1 /*
2 
3 Pencil2D - Traditional Animation Software
4 Copyright (C) 2012-2020 Matthew Chiawen Chang
5 
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public License
8 as published by the Free Software Foundation; version 2 of the License.
9 
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14 
15 */
16 #include "catch.hpp"
17 
18 #include "colormanager.h"
19 #include "object.h"
20 #include "editor.h"
21 #include "layer.h"
22 #include "layermanager.h"
23 
24 TEST_CASE("ColorManager Initial Test")
25 {
26  Object* object = new Object;
27  Editor* editor = new Editor;
28  editor->setObject(object);
29 
30  SECTION("init")
31  {
32  ColorManager* cm = new ColorManager(editor);
33  REQUIRE(cm != nullptr);
34  REQUIRE(cm->init() == true);
35  }
36 
37  delete editor;
38 }
39 
40 TEST_CASE("ColorManager set color tests")
41 {
42  Object* object = new Object;
43  Editor* editor = new Editor;
44  editor->setObject(object);
45  ColorManager* cm = new ColorManager(editor);
46  cm->init();
47 
48  Object* layerObj = new Object;
49  Editor* layerEdit = new Editor;
50  editor->setObject(object);
51  LayerManager* layerMgr = new LayerManager(layerEdit);
52  layerMgr->init();
53 
54  layerObj->init();
55  layerObj->createDefaultLayers(); // 0 = camera, 1 = vector, 2 = bitmap
56 
57 
58  SECTION("setColor non vector layer")
59  {
60  cm->workingLayerChanged(layerObj->getLayer(2));
61  cm->setColor(QColor(255,0,0));
62  REQUIRE(cm->frontColor() == QColor(255,0,0));
63  }
64 
65  SECTION("setColor vector layer")
66  {
67  cm->workingLayerChanged(layerObj->getLayer(1));
68  cm->setColor(QColor(255,255,255));
69  REQUIRE(cm->frontColor() == QColor(255,255,255));
70  }
71 
72 
73  delete layerEdit;
74  delete editor;
75 }
76 
77 TEST_CASE("Save and Load")
78 {
79  Object* object = new Object;
80  Editor* editor = new Editor;
81  editor->setObject(object);
82  ColorManager* cm2 = new ColorManager(editor);
83  cm2->init();
84 
85  Object* objToLoad = new Object;
86  objToLoad->data()->setCurrentColor(QColor(255,255,0));
87 
88  Object* objToSave = new Object;
89  objToSave->data()->setCurrentColor(QColor(45,45,255));
90 
91  SECTION("load")
92  {
93  cm2->setColor(QColor(0,0,0));
94  REQUIRE(cm2->frontColor() == QColor(0,0,0));
95  REQUIRE(cm2->load(objToLoad) == Status::OK);
96  REQUIRE(cm2->frontColor() == QColor(255,255,0));
97  }
98 
99  SECTION("save")
100  {
101  cm2->setColor(QColor(0,255,0));
102  REQUIRE(cm2->frontColor() == QColor(0,255,0));
103  REQUIRE(objToSave->data()->getCurrentColor() == QColor(45,45,255));
104  REQUIRE(cm2->save(objToSave) == Status::OK);
105  REQUIRE(objToSave->data()->getCurrentColor() == QColor(0,255,0));
106 
107  }
108 
109  delete objToSave;
110  delete objToLoad;
111  delete editor;
112 
113 }
114 
115 TEST_CASE("colorManager setColorNumber")
116 {
117  Object* object = new Object;
118  Editor* editor = new Editor;
119  editor->setObject(object);
120  ColorManager* cm3 = new ColorManager(editor);
121  cm3->init();
122 
123  SECTION("set number")
124  {
125  cm3->setColorNumber(0);
126  REQUIRE(cm3->frontColorNumber() == 0);
127  cm3->setColorNumber(4);
128  REQUIRE(cm3->frontColorNumber() == 4);
129  cm3->setColorNumber(10000);
130  REQUIRE(cm3->frontColorNumber() == 10000);
131  }
132  delete editor;
133 }
Definition: object.h:54
Definition: editor.h:51