1 /* Copyright (C) 2013-2020 Roland Lutz
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; either version 2 of the License, or
6 (at your option) any later version.
8 This program is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 GNU General Public License for more details.
13 You should have received a copy of the GNU General Public License
14 along with this program; if not, write to the Free Software Foundation,
15 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
23 xorn_revision_t rev0
, rev1
, rev2
, rev3
;
24 xorn_object_t ob0
, ob1a
, ob1b
;
26 xorn_selection_t sel0
, sel1
;
29 xorn_object_t
*objects
;
32 setup(&rev0
, &rev1
, &rev2
, &rev3
, &ob0
, &ob1a
, &ob1b
);
34 rev4
= xorn_new_revision(rev2
);
37 sel0
= xorn_select_all(rev3
);
40 sel1
= xorn_copy_objects(rev4
, rev2
, sel0
, NULL
);
43 xorn_finalize_revision(rev4
);
45 assert(xorn_object_is_selected(rev4
, sel0
, ob0
));
46 assert(!xorn_object_is_selected(rev4
, sel0
, ob1a
));
47 assert(xorn_object_is_selected(rev4
, sel0
, ob1b
));
49 assert(!xorn_object_is_selected(rev4
, sel1
, ob0
));
50 assert(!xorn_object_is_selected(rev4
, sel1
, ob1a
));
51 assert(!xorn_object_is_selected(rev4
, sel1
, ob1b
));
53 assert(xorn_get_objects(rev4
, &objects
, &count
) == 0);
54 assert(objects
!= NULL
);
57 assert(objects
[0] == ob0
);
58 assert(objects
[1] == ob1a
);
59 assert(objects
[2] == ob1b
);
61 assert(!xorn_object_is_selected(rev4
, sel0
, objects
[3]));
62 assert(!xorn_object_is_selected(rev4
, sel0
, objects
[4]));
64 assert(xorn_object_is_selected(rev4
, sel1
, objects
[3]));
65 assert(xorn_object_is_selected(rev4
, sel1
, objects
[4]));
69 xorn_free_selection(sel1
);
70 xorn_free_selection(sel0
);
72 xorn_free_revision(rev4
);
73 xorn_free_revision(rev3
);
74 xorn_free_revision(rev2
);
75 xorn_free_revision(rev1
);
76 xorn_free_revision(rev0
);