[squeak-dev] The Trunk: MorphicTests-mt.65.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Sep 17 13:41:45 UTC 2020
Marcel Taeumel uploaded a new version of MorphicTests to project The Trunk:
http://source.squeak.org/trunk/MorphicTests-mt.65.mcz
==================== Summary ====================
Name: MorphicTests-mt.65
Author: mt
Time: 17 September 2020, 3:41:47.157573 pm
UUID: 50b2cc27-06d5-5d40-936d-7b029ddc01b1
Ancestors: MorphicTests-mt.64, MorphicTests-ct.61
Updates layout tests following MorphicTests-nice.61 (inbox->treated). Complements Morphic-mt.1683. Merges MorphicTests-ct.61 (inbox->trunk).
=============== Diff against MorphicTests-mt.64 ===============
Item was changed:
TestCase subclass: #MorphLayoutTest
+ instanceVariableNames: 'reset'
- instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'MorphicTests-Layouts'!
Item was removed:
- ----- Method: MorphLayoutTest>>testScrollPaneBarUpdate (in category 'tests') -----
- testScrollPaneBarUpdate
-
- | oldPreferences |
- oldPreferences := ScrollPane useRetractableScrollBars.
- [| child container |
- ScrollPane useRetractableScrollBars: false.
- container := ScrollPane new color: Color green; extent: 300 @ 300; showVScrollBarOnlyWhenNeeded; showHScrollBarOnlyWhenNeeded.
- container scroller addMorphBack: (child := Morph new color: Color red; extent: 100 @ 100).
-
- self ensureLayout: container.
- self assert: container hScrollBar owner isNil.
- self assert: container vScrollBar owner isNil.
-
- child extent: 400 @ 100.
- self ensureLayout: container.
- self assert: container hScrollBar owner notNil.
- self assert: container vScrollBar owner isNil.
-
- child extent: 400 @ 400.
- self ensureLayout: container.
- self assert: container hScrollBar owner notNil.
- self assert: container hScrollBar owner notNil]
- ensure: [ScrollPane useRetractableScrollBars: oldPreferences]!
Item was added:
+ ----- Method: MorphicEventTests>>test02MouseOver (in category 'tests') -----
+ test02MouseOver
+
+ | m1 m2 |
+ m1 := MorphForEventTests new.
+ m2 := MorphForEventTests new.
+
+ m1 extent: 20 at 20; topLeft: 0 at 0.
+ m2 extent: 20 at 20; topLeft: 40 at 0.
+
+ m1 openInWorld: world.
+ m2 openInWorld: world.
+
+ hand handleEvent: (self redMouseDownAt: m1 center).
+ hand handleEvent: (self redMouseUpAt: m1 center).
+ hand handleEvent: (self redMouseDownAt: m2 center).
+ hand handleEvent: (self redMouseUpAt: m2 center).
+
+ self
+ checkEventOrder: #(mouseMove mouseEnter mouseDown mouseUp mouseLeave)
+ forEvents: m1 eventsDuringBubble
+ ignoreMouseOver: true.
+
+ self
+ checkEventOrder: #(mouseMove mouseEnter mouseDown mouseUp)
+ forEvents: m2 eventsDuringBubble
+ ignoreMouseOver: true.
+ !
Item was removed:
- ----- Method: MorphicEventTests>>test02MouserOver (in category 'tests') -----
- test02MouserOver
-
- | m1 m2 |
- m1 := MorphForEventTests new.
- m2 := MorphForEventTests new.
-
- m1 extent: 20 at 20; topLeft: 0 at 0.
- m2 extent: 20 at 20; topLeft: 40 at 0.
-
- m1 openInWorld: world.
- m2 openInWorld: world.
-
- hand handleEvent: (self redMouseDownAt: m1 center).
- hand handleEvent: (self redMouseUpAt: m1 center).
- hand handleEvent: (self redMouseDownAt: m2 center).
- hand handleEvent: (self redMouseUpAt: m2 center).
-
- self
- checkEventOrder: #(mouseMove mouseEnter mouseDown mouseUp mouseLeave)
- forEvents: m1 eventsDuringBubble
- ignoreMouseOver: true.
-
- self
- checkEventOrder: #(mouseMove mouseEnter mouseDown mouseUp)
- forEvents: m2 eventsDuringBubble
- ignoreMouseOver: true.
- !
Item was changed:
TestCase subclass: #TableLayoutTest
+ instanceVariableNames: 'container reset'
- instanceVariableNames: 'container'
classVariableNames: ''
poolDictionaries: ''
category: 'MorphicTests-Layouts'!
Item was added:
+ ----- Method: TableLayoutTest>>setUp (in category 'running') -----
+ setUp
+
+ super setUp.
+
+ reset := {
+ ([:enable | [self useRetractableScrollBars: enable]]
+ value: self useRetractableScrollBars)
+ in: [:block | self useRetractableScrollBars: false].
+ }.!
Item was added:
+ ----- Method: TableLayoutTest>>tearDown (in category 'running') -----
+ tearDown
+
+ reset do: #value.
+ super tearDown.!
Item was changed:
----- Method: TableLayoutTest>>testPluggableTextMorph (in category 'tests') -----
testPluggableTextMorph
+ | ptm |
- | oldPreferences |
- oldPreferences := ScrollPane useRetractableScrollBars.
- [| ptm |
- ScrollPane useRetractableScrollBars: false.
ptm := PluggableTextMorph new
extent: 100 at 50;
setText: 'Hello World!! Hello World!! Hello World!! Hello World!!';
wrapFlag: true.
+
-
container := self newContainer addMorphBack: ptm.
self ensureLayout: container.
self assert: 100 at 50 equals: container extent.
self assert: ptm vIsScrollbarShowing.
self deny: ptm hIsScrollbarShowing.
"Make it a one-liner."
ptm wrapFlag: false.
self ensureLayout: container.
self deny: ptm vIsScrollbarShowing.
self assert: ptm hIsScrollbarShowing.
"Make it a one-liner without the horizontal scrollbar."
ptm hideScrollBarsIndefinitely.
self ensureLayout: container.
self deny: ptm vIsScrollbarShowing.
+ self deny: ptm hIsScrollbarShowing.
- self deny: ptm hIsScrollbarShowing]
- ensure: [ScrollPane useRetractableScrollBars: oldPreferences].
!
Item was changed:
----- Method: TableLayoutTest>>testPluggableTextMorphScrollBarNotNeeded (in category 'tests') -----
testPluggableTextMorphScrollBarNotNeeded
"The entire test might fit if the scroll bar would only disappear..."
+ | ptm |
- | oldPreferences |
- oldPreferences := ScrollPane useRetractableScrollBars.
- [| ptm |
- ScrollPane useRetractableScrollBars: false.
ptm := PluggableTextMorph new
extent: 100 at 50;
setText: 'Hello World!! Hello World!! \\\ Hello World!! Hello World!!' withCRs.
container := self newContainer addMorphBack: ptm.
"Make it fit exactly first."
ptm hResizing: #shrinkWrap; vResizing: #shrinkWrap.
self ensureLayout: container.
ptm hResizing: #rigid; vResizing: #rigid.
ptm wrapFlag: true.
"No scrollbars required."
self ensureLayout: container.
self deny: ptm vIsScrollbarShowing.
"It wraps immediately."
ptm width: ptm width - 5.
self ensureLayout: container.
self assert: ptm vIsScrollbarShowing.
"No scrollbars required."
ptm width: ptm width + 5.
self ensureLayout: container.
+ self deny: ptm vIsScrollbarShowing.!
- self deny: ptm vIsScrollbarShowing]
- ensure: [ScrollPane useRetractableScrollBars: oldPreferences]!
Item was added:
+ ----- Method: TableLayoutTest>>testScrollPaneBarUpdate (in category 'tests - scroll panes') -----
+ testScrollPaneBarUpdate
+
+ | child container |
+ container := ScrollPane new color: Color green; extent: 300 @ 300; showVScrollBarOnlyWhenNeeded; showHScrollBarOnlyWhenNeeded.
+ container scroller addMorphBack: (child := Morph new color: Color red; extent: 100 @ 100).
+
+ self ensureLayout: container.
+ self assert: container hScrollBar owner isNil.
+ self assert: container vScrollBar owner isNil.
+
+ child extent: 400 @ 100.
+ self ensureLayout: container.
+ self assert: container hScrollBar owner notNil.
+ self assert: container vScrollBar owner isNil.
+
+ child extent: 400 @ 400.
+ self ensureLayout: container.
+ self assert: container hScrollBar owner notNil.
+ self assert: container hScrollBar owner notNil!
Item was changed:
----- Method: TableLayoutTest>>testScrollPaneShrinkWrap (in category 'tests') -----
testScrollPaneShrinkWrap
+ | scroll scrollContent |
- | oldPreferences |
- oldPreferences := ScrollPane useRetractableScrollBars.
- [| scroll scrollContent |
- ScrollPane useRetractableScrollBars: false.
container := self newContainer
vResizing: #rigid;
addMorphBack: (self newMorph extent: 50 @ 50);
addMorphBack: (scroll := ScrollPane new
hResizing: #shrinkWrap;
vResizing: #spaceFill;
showVScrollBarOnlyWhenNeeded;
hideHScrollBarIndefinitely).
" shrinkWrap the horizontal axis but scroll vertically "
scroll scroller
layoutPolicy: TableLayout new;
addMorphBack: (scrollContent := self newMorph extent: 200 @ 500).
container extent: 1 @ 300.
self ensureLayout: container.
self assert: container left = (container layoutChanged; fullBounds; left). "Do not be jumpy."
self assert: (200 + scroll scrollBarThickness + scroll borderWidth) @ 300 equals: scroll extent.
scrollContent extent: 300 @ 500.
self ensureLayout: container.
+ self assert: (300 + scroll scrollBarThickness + scroll borderWidth) @ 300 equals: scroll extent!
- self assert: (300 + scroll scrollBarThickness + scroll borderWidth) @ 300 equals: scroll extent]
- ensure: [ScrollPane useRetractableScrollBars: oldPreferences].
- !
Item was added:
+ ----- Method: TableLayoutTest>>testScrollerFill (in category 'tests - scroll panes') -----
+ testScrollerFill
+ "A scroll pane's scroller (i.e., the transform morph) has always #spaceFill behavior within the scroll pane's layout. Thus, submorphs (here: title and content) can themselves be #spaceFill. Embed a text morph to check height-for-width compatibility."
+
+ | content title |
+ container := ScrollPane new.
+
+ container scroller
+ layoutPolicy: TableLayout new;
+ color: Color random;
+ addMorphBack: (title := TextMorph new hResizing: #spaceFill; contents: 'Here comes an interesting title');
+ addMorphBack: (content := self newMorph extent: 400 @ 400; hResizing: #spaceFill).
+ container extent: 50 @ 50. "Pick an extent so that the title must wrap!!"
+ self ensureLayout: container.
+
+ "container openInHand."
+
+ container extent: 500 @ 500.
+ self ensureLayout: container.
+ self assert: 500 @ 500 equals: container extent.
+ self assert: 500 - (container borderWidth * 2) @ 400 equals: content extent.
+
+ container extent: 300 @ 300.
+ self ensureLayout: container.
+ self assert: 300 @ 300 equals: container extent.
+ self assert: 300 - container borderWidth - container scrollBarThickness @ 400 equals: content extent!
Item was added:
+ ----- Method: TableLayoutTest>>testScrollerFillWithContainer (in category 'tests - scroll panes') -----
+ testScrollerFillWithContainer
+ "A scroll pane's scroller (i.e., the transform morph) has always #spaceFill behavior within the scroll pane's layout. Thus, submorphs (here: title and content) can themselves be #spaceFill. Embed a text morph to check height-for-width compatibility. Add an extra container between scroller and title/content."
+
+ | content title |
+ container := ScrollPane new.
+
+ container scroller
+ layoutPolicy: TableLayout new;
+ addMorphBack: (self newContainer
+ hResizing: #spaceFill;
+ vResizing: #spaceFill;
+ listDirection: #topToBottom;
+ addMorphBack: (title := TextMorph new hResizing: #spaceFill; contents: 'Here comes an interesting title');
+ addMorphBack: (content := self newMorph extent: 400 @ 400; hResizing: #spaceFill)).
+ container extent: 50 @ 50. "Pick an extent so that the title must wrap!!"
+ self ensureLayout: container.
+
+ "container openInHand."
+
+ container extent: 500 @ 500.
+ self ensureLayout: container.
+ self assert: 500 @ 500 equals: container extent.
+ self assert: 500 - (container borderWidth * 2) @ 400 equals: content extent.
+
+ container extent: 300 @ 300.
+ self ensureLayout: container.
+ self assert: 300 @ 300 equals: container extent.
+ self assert: 300 - container borderWidth - container scrollBarThickness @ 400 equals: content extent!
Item was changed:
----- Method: TableLayoutTest>>testShrinkWrapScrollPaneAlwaysShowBars (in category 'tests') -----
testShrinkWrapScrollPaneAlwaysShowBars
+ | scroll scrollContent |
- | oldPreferences |
- oldPreferences := ScrollPane useRetractableScrollBars.
- [| scroll scrollContent |
- ScrollPane useRetractableScrollBars: false.
container := self newContainer
vResizing: #shrinkWrap;
hResizing: #shrinkWrap;
addMorphBack: (scroll := ScrollPane new
hResizing: #shrinkWrap;
vResizing: #shrinkWrap;
alwaysShowHScrollBar;
alwaysShowVScrollBar).
scroll scroller
layoutPolicy: TableLayout new;
addMorphBack: (scrollContent := self newMorph extent: 300 @ 300).
self ensureLayout: container.
+ self assert: (300 @ 300) + scroll scrollBarThickness + scroll borderWidth equals: container extent!
- self assert: (300 @ 300) + scroll scrollBarThickness + scroll borderWidth equals: container extent]
- ensure: [ScrollPane useRetractableScrollBars: oldPreferences].
- !
Item was changed:
----- Method: TableLayoutTest>>testSidebarAndScrollingView (in category 'tests - example layouts') -----
testSidebarAndScrollingView
" construct a container that has a fixed size sidebar on the left and a scrolling window that adapts flexibly to the container's size "
+ | scrolling sidebar content title |
- | oldPreferences |
- oldPreferences := ScrollPane useRetractableScrollBars.
- [| scrolling sidebar content title |
- ScrollPane useRetractableScrollBars: false.
container := self newContainer
addMorphBack: (sidebar := self newMorph width: 200; hResizing: #rigid; vResizing: #spaceFill);
addMorphBack: (scrolling := ScrollPane new hResizing: #spaceFill; vResizing: #spaceFill).
scrolling scroller
layoutPolicy: TableLayout new;
addMorphBack: (self newContainer
hResizing: #spaceFill;
vResizing: #spaceFill;
listDirection: #topToBottom;
addMorphBack: (title := TextMorph new hResizing: #spaceFill; contents: 'Here comes a title');
addMorphBack: (content := self newMorph extent: 400 @ 400; hResizing: #spaceFill)).
+ self ensureLayout: container.
+
"container openInHand."
container extent: 500 @ 500.
self ensureLayout: container.
self assert: 200 @ 500 equals: sidebar extent.
self assert: 300 @ 500 equals: scrolling extent.
self assert: 300 - (scrolling borderWidth * 2) @ 400 equals: content extent.
container extent: 300 @ 300.
self ensureLayout: container.
self assert: 200 @ 300 equals: sidebar extent.
self assert: 100 @ 300 equals: scrolling extent.
+ self assert: 100 - scrolling borderWidth - scrolling scrollBarThickness @ 400 equals: content extent!
- self assert: 100 - scrolling borderWidth - scrolling scrollBarThickness @ 400 equals: content extent]
- ensure: [ScrollPane useRetractableScrollBars: oldPreferences]!
Item was added:
+ ----- Method: TableLayoutTest>>useRetractableScrollBars (in category 'running') -----
+ useRetractableScrollBars
+
+ ^ ScrollPane classPool at: #UseRetractableScrollBars!
Item was added:
+ ----- Method: TableLayoutTest>>useRetractableScrollBars: (in category 'running') -----
+ useRetractableScrollBars: aBoolean
+ "Re-implemented to avoid triggering #allSubInstancesDo:."
+
+ ScrollPane classPool at: #UseRetractableScrollBars put: aBoolean.!
More information about the Squeak-dev
mailing list
|