From c25ec99675ca46f16f43c11dabea6935e7a26969 Mon Sep 17 00:00:00 2001 From: Pierre Laborde <49183340+labordep@users.noreply.github.com> Date: Fri, 29 Aug 2025 13:47:57 +0200 Subject: [PATCH 1/4] Fix #231 --- .../BaselineOfMolecule.class.st | 45 ++++++++++--------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/src/BaselineOfMolecule/BaselineOfMolecule.class.st b/src/BaselineOfMolecule/BaselineOfMolecule.class.st index a01d182..ee7cb73 100644 --- a/src/BaselineOfMolecule/BaselineOfMolecule.class.st +++ b/src/BaselineOfMolecule/BaselineOfMolecule.class.st @@ -9,31 +9,32 @@ Class { { #category : #baselines } BaselineOfMolecule >> baseline: spec [ + + + spec for: #common do: [ self baselineForCommon: spec ] +] + +{ #category : #baselines } +BaselineOfMolecule >> baselineForCommon: spec [ - spec - for: #common - do: [ - "Pre and post load scripts" - spec preLoadDoIt: #'preload:package:'. - spec postLoadDoIt: #'postload:package:'. + + "Pre and post load scripts" + spec preLoadDoIt: #'preload:package:'. + spec postLoadDoIt: #'postload:package:'. - "Packages" - spec - package: 'Molecule'; - package: 'Molecule-IDE' with: [ spec requires: #('Molecule') ]; - package: 'Molecule-Examples' with: [ spec requires: #('Molecule') ]; - package: 'Molecule-Tests' with: [ spec requires: #('Molecule') ]; - package: 'Molecule-IDE-Tests' with: [ spec requires: #('Molecule-IDE') ]. + "Packages" + spec + package: 'Molecule'; + package: 'Molecule-IDE' with: [ spec requires: #('Molecule') ]; + package: 'Molecule-Examples' with: [ spec requires: #('Molecule') ]; + package: 'Molecule-Tests' with: [ spec requires: #('Molecule') ]; + package: 'Molecule-IDE-Tests' with: [ spec requires: #('Molecule-IDE') ]. - "Pharo backward compatibility: to preserve running from Pharo 11" - spec - for: #'pharo11.x' - do:[ - spec - baseline: 'PharoBackwardCompatibility' - with: [ spec repository: 'github://jecisc/PharoBackwardCompatibility:v1.11.0/src' ] - ]. - ] + "Pharo backward compatibility: to preserve running from previous versions of Pharo" + spec + baseline: 'PharoBackwardCompatibility' + with: [ spec repository: 'github://jecisc/PharoBackwardCompatibility:master' ]. + ] { #category : #'load scripts' } From 0f321b4df52bb88d8630bc67fc97f380fad8d72e Mon Sep 17 00:00:00 2001 From: Pierre Laborde <49183340+labordep@users.noreply.github.com> Date: Fri, 29 Aug 2025 13:55:05 +0200 Subject: [PATCH 2/4] Better UI feedback in the baseline --- .../BaselineOfMolecule.class.st | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/BaselineOfMolecule/BaselineOfMolecule.class.st b/src/BaselineOfMolecule/BaselineOfMolecule.class.st index ee7cb73..ba4dc50 100644 --- a/src/BaselineOfMolecule/BaselineOfMolecule.class.st +++ b/src/BaselineOfMolecule/BaselineOfMolecule.class.st @@ -63,12 +63,15 @@ BaselineOfMolecule >> preload: loader package: packageSpec [ previousDynamicContractUpdateActivated := false. (Smalltalk globals classNamed: #MolComponentManager) isRunningComponents ifTrue:[ - (Smalltalk ui theme - proceedIn: Morph new - text: 'Warning, you are going to modify Molecule then components are started, do you want to continue ?' - title: 'Molecule - Loading a baseline') ifFalse:[ - self flag:'PLA : How to stop the loading ? For the moment you should close the debug windows opened when Halt is call'. - Halt now. + + (UIManager default confirm: + 'Warning, you are going to modify Molecule then components are started, do you want to continue ? + +If -NO-, an error window (Halt) will appears, close it to interrupt the loading process. +If -YES- the loading continue anyway.' + label: 'Molecule - Loading a baseline') ifFalse: [ + Exception signal:'Cannot continue Molecule loading: just close me.'. + ^ self ]. ]. From 7b29ef0a7c70c3f793f55346b8d8618c73ad2b21 Mon Sep 17 00:00:00 2001 From: Pierre Laborde <49183340+labordep@users.noreply.github.com> Date: Fri, 29 Aug 2025 13:58:02 +0200 Subject: [PATCH 3/4] Fix issue #232 --- src/Molecule-IDE-Tests/MolWorldTest.class.st | 37 ++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/Molecule-IDE-Tests/MolWorldTest.class.st b/src/Molecule-IDE-Tests/MolWorldTest.class.st index 89de765..b99eed5 100644 --- a/src/Molecule-IDE-Tests/MolWorldTest.class.st +++ b/src/Molecule-IDE-Tests/MolWorldTest.class.st @@ -1,9 +1,45 @@ Class { #name : #MolWorldTest, #superclass : #TestCase, + #classInstVars : [ + 'worldMenuItemCheck' + ], #category : #'Molecule-IDE-Tests-Cases' } +{ #category : #accessing } +MolWorldTest class >> worldMenuItemCheck [ + + ^ worldMenuItemCheck +] + +{ #category : #accessing } +MolWorldTest class >> worldMenuItemCheck: anObject [ + + worldMenuItemCheck := anObject +] + +{ #category : #'tests - menu' } +MolWorldTest class >> worldMenuItemTestMethod: anItem [ + "This method check if the pragma mecanism to setup a menu item is working" + "Be aware to not inject behavior here because this is just a test method ant it is called when the menu is build!" + + + worldMenuItemCheck := true. + + anItem ifNil:[ Exception signal: 'Menu item should be not nil' ]. + anItem item = (MolWorld menuKey) ifFalse:[ Exception signal: 'Menu item should be equals to ', MolWorld menuKey printString ]. +] + +{ #category : #running } +MolWorldTest >> setUp [ + + super setUp. + + self class worldMenuItemCheck: false. + self deny: self class worldMenuItemCheck +] + { #category : #running } MolWorldTest >> testMenuKey [ @@ -32,4 +68,5 @@ MolWorldTest >> testWorldMenuBuilding [ MolWorld perform: p with: menuBuilder. ]. + self assert: self class worldMenuItemCheck. ] From 5e852ab9b8c665d45ba0cf95eb4060223dfa7e41 Mon Sep 17 00:00:00 2001 From: Pierre Laborde <49183340+labordep@users.noreply.github.com> Date: Fri, 29 Aug 2025 14:15:13 +0200 Subject: [PATCH 4/4] Trying to fix issue #230 + add another type a component to test --- src/Molecule-Tests/MolComponentFactoryTest.class.st | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Molecule-Tests/MolComponentFactoryTest.class.st b/src/Molecule-Tests/MolComponentFactoryTest.class.st index bfd72f1..3c12550 100644 --- a/src/Molecule-Tests/MolComponentFactoryTest.class.st +++ b/src/Molecule-Tests/MolComponentFactoryTest.class.st @@ -269,12 +269,23 @@ MolComponentFactoryTest >> testCollectComponentConnectionTraitsOrder [ "This test check the order of the traits collect: events, services and parameters. This is necessary to control the order to not change generated code in existing components" | traits | + "Test with an abstract component subclass" traits := MolComponentFactory default collectComponentConnectionTraits: MolCompleteComponentImpl. self assert: traits size equals: 3. self assert: (traits first) equals: MolUsedEvents. self assert: (traits at: 2) equals: MolUsedServices. self assert: (traits at: 3) equals: MolUsedParameters. + "Test with an augmented class as a component" + traits := MolComponentFactory default collectComponentConnectionTraits: MolAugmentedClassToAComponent. + self assert: traits size equals: 3. + self assert: (traits first) equals: MolUsedEvents. + self assert: (traits at: 2) equals: MolUsedServices. + self assert: (traits at: 3) equals: MolUsedParameters. + + 100 milliSeconds wait. "See issue #230, try to wait for removing previous test things" + + "Test with an overloaded component class" traits := MolComponentFactory default collectComponentConnectionTraits: MolCompleteComponentOverloadImpl. self assert: traits size equals: 6. self assert: (traits first) equals: MolUsedEvents.