* Bug #13441 fixed - Scilab crashed when uicontrol was called with a string for borde...
[scilab.git] / scilab / modules / graphics / tests / nonreg_tests / bug_13441.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2014 - Scilab Enterprises - Vladislav TRUBKIN
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 // <-- TEST WITH GRAPHIC -->
8 // <-- Non-regression test for bug 13441 -->
9 //
10 // <-- Bugzilla URL -->
11 // http://bugzilla.scilab.org/13441
12 //
13 // <-- Short Description -->
14 // Scilab crashes when giving a string for border property of the uicontrol
15 //
16 f = figure("figure_name", "FIGURE", ...
17 "dockable", "off", ...
18 "axes_size", [300,300], ...
19 "infobar_visible", "off", ...
20 "toolbar", "none", ...
21 "menubar_visible", "off", ...
22 "menubar", "none", ...
23 "default_axes", "off", ...
24 "layout", "border");
25
26 mainFrame = uicontrol(f, ...
27 "style", "frame", ...
28 "layout", "border");
29
30 font = createBorderFont("Serif", 12, "bold");
31 constraint = createConstraints("border", "left", [150,300]);
32 leftFrame = uicontrol(mainFrame, ...
33 "style", "frame", ...
34 "layout", "gridbag", ...
35 "constraints", constraint, ...
36 "tag", "leftFrame");
37
38 border = createBorder("titled", createBorder("etched"), "Frame title", "left", "top", font, "blue");
39 constraint = createConstraints("gridbag", [1 1 1 1], [1 0.1], "both", "left");
40
41 // OK test
42 // mlist
43 assert_checkequal(execstr("h = uicontrol(leftFrame," +...
44 """style"", ""frame""," +...
45 """border"", border," +...
46 """layout"", ""gridbag""," +...
47 """constraints"", constraint);", "errcatch"), 0);
48 assert_checkequal(execstr("h = uicontrol(leftFrame," +...
49 """style"", ""frame""," +...
50 """border"", border," +...
51 """layout"", ""grid""," +...
52 """constraints"", constraint);", "errcatch"), 0);
53 // []
54 assert_checkequal(execstr("h = uicontrol(leftFrame," +...
55 """style"", ""frame""," +...
56 """border"", []," +...
57 """layout"", ""grid""," +...
58 """constraints"", constraint);", "errcatch"), 0);
59
60 // KO test
61 lstrFromSetBorder = gettext("Wrong type for "'%s"' property: An empty matrix or a tlist expected.\n");
62 errmsgFromSetBorder = msprintf(lstrFromSetBorder, "border");
63 lstrFromUicontrol =  gettext("%s: Could not set property "'%s"'.\n");
64 errmsgFromUicontrol = msprintf(lstrFromUicontrol, "uicontrol", "border");
65
66 checkValues = list("border", [1, 2, 3, 4], [1 ,2; 1, 2], ...
67 [1:10], [1:10]', list(), ...
68 list(1, 2, 3), mlist(["MLIST", "Name", "Value"], ...
69 ["one","two", "three"], [1, 2, 3]));
70 for i = 1:8
71     if i < 6 then
72         assert_checkerror("h = uicontrol(leftFrame," +...
73         """style"", ""frame""," +...
74         """border"", checkValues(i)," +...
75         """layout"", ""gridbag""," +...
76         """constraints"", constraint);", errmsgFromSetBorder);
77     else
78         assert_checkerror("h = uicontrol(leftFrame," +...
79         """style"", ""frame""," +...
80         """border"", checkValues(i)," +...
81         """layout"", ""gridbag""," +...
82         """constraints"", constraint);", errmsgFromUicontrol);
83     end
84 end