0024927: Getting rid of "Persistent" functionality -- Tests
[occt.git] / tests / caf / xlink / B5
1 #INTERFACE CAF
2 # XLink attributes
3 #
4 # Testing attribute: TDocStd_XLink
5 #
6 # Testing command:   CopyWithLink
7 #
8
9 puts "caf004-CIN001_b5.rle"
10
11 # Create two new documents Doc1, Doc2
12 NewDocument Doc1 BinOcaf
13 NewDocument Doc2 BinOcaf
14
15 # Set UndoLimit for them
16 UndoLimit Doc1 100
17 UndoLimit Doc2 100
18
19 # Set a shape in Doc1 to label 'SLabel'
20 set aLabel1 0:2
21 Label Doc1 ${aLabel1}
22 SetName Doc1 ${aLabel1} SLabel
23
24 set aSetX1 10
25 set aSetY1 20
26 set aSetZ1 30
27 set aSetDX1 100
28 set aSetDY1 200
29 set aSetDZ1 300
30
31 box aBox1 ${aSetX1} ${aSetY1} ${aSetZ1} ${aSetDX1} ${aSetDY1} ${aSetDZ1}
32
33 set aBoundingBox1 [bounding aBox1]
34 set X1_Box1 [lindex ${aBoundingBox1} 0]
35 set Y1_Box1 [lindex ${aBoundingBox1} 1]
36 set Z1_Box1 [lindex ${aBoundingBox1} 2]
37 set X2_Box1 [lindex ${aBoundingBox1} 3]
38 set Y2_Box1 [lindex ${aBoundingBox1} 4]
39 set Z2_Box1 [lindex ${aBoundingBox1} 5]
40
41 SetShape Doc1 ${aLabel1} aBox1
42
43 # Create a new label 'TLabel1' in Doc2
44 set aLabel2 0:3
45 Label Doc2 ${aLabel2}
46 SetName Doc2 ${aLabel2} TLabel1
47
48 # Open transaction in Doc2
49 NewCommand Doc2
50
51 # Copy 'SLabel' to the label 'TLabel1' with link
52 CopyWithLink Doc2 ${aLabel2} Doc1 ${aLabel1}
53
54 # Close/Open transaction
55 NewCommand Doc1
56
57 # Set new shape in Doc1 to label 'SLabel'
58 set aRadius 70
59 psphere aSphere ${aRadius}
60 SetShape Doc1 ${aLabel1} aSphere
61
62 # Undo Doc1
63 Undo Doc1
64
65 # Redo Doc1
66 Redo Doc1
67
68 # Get a shape from 'TLabel1'
69 GetShape Doc2 ${aLabel2} aBox2
70
71 set aBoundingBox2 [bounding aBox2]
72 set X1_Box2 [lindex ${aBoundingBox2} 0]
73 set Y1_Box2 [lindex ${aBoundingBox2} 1]
74 set Z1_Box2 [lindex ${aBoundingBox2} 2]
75 set X2_Box2 [lindex ${aBoundingBox2} 3]
76 set Y2_Box2 [lindex ${aBoundingBox2} 4]
77 set Z2_Box2 [lindex ${aBoundingBox2} 5]
78
79 if { ${X1_Box1} != ${X1_Box2} || 
80      ${Y1_Box1} != ${Y1_Box2} || 
81      ${Z1_Box1} != ${Z1_Box2} || 
82      ${X2_Box1} != ${X2_Box2} || 
83      ${Y2_Box1} != ${Y2_Box2} || 
84      ${Z2_Box1} != ${Z2_Box2} } {
85         puts "X1_Box1=${X1_Box1} Y1_Box1=${Y1_Box1} Z1_Box1=${Z1_Box1} X2_Box1=${X2_Box1} Y2_Box1=${Y2_Box1} Z2_Box1=${Z2_Box1}"
86         puts "X1_Box2=${X1_Box2} Y1_Box2=${Y1_Box2} Z1_Box2=${Z1_Box2} X2_Box2=${X2_Box2} Y2_Box2=${Y2_Box2} Z2_Box2=${Z2_Box2}"
87         puts "Set a link between attributes of the same document: Error"
88         return
89 }
90
91 puts "Set a link between attributes of the same document: OK"