The Trunk: Tests-mt.328.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Tests-mt.328.mcz

commits-2
Marcel Taeumel uploaded a new version of Tests to project The Trunk:
http://source.squeak.org/trunk/Tests-mt.328.mcz

==================== Summary ====================

Name: Tests-mt.328
Author: mt
Time: 27 August 2015, 10:54:02.079 am
UUID: 2b490fe8-250d-2e48-84c2-41d50b1ae410
Ancestors: Tests-eem.327

New tests for preferences.

=============== Diff against Tests-eem.327 ===============

Item was changed:
  SystemOrganization addCategory: #'Tests-Bugs'!
  SystemOrganization addCategory: #'Tests-Compiler'!
  SystemOrganization addCategory: #'Tests-Dependencies'!
  SystemOrganization addCategory: #'Tests-Digital Signatures'!
  SystemOrganization addCategory: #'Tests-Environments'!
  SystemOrganization addCategory: #'Tests-Exceptions'!
  SystemOrganization addCategory: #'Tests-FilePackage'!
  SystemOrganization addCategory: #'Tests-Files'!
  SystemOrganization addCategory: #'Tests-Finalization'!
  SystemOrganization addCategory: #'Tests-Hex'!
  SystemOrganization addCategory: #'Tests-Installer-Core'!
  SystemOrganization addCategory: #'Tests-Localization'!
  SystemOrganization addCategory: #'Tests-Monticello'!
  SystemOrganization addCategory: #'Tests-Monticello-Mocks'!
  SystemOrganization addCategory: #'Tests-Monticello-Utils'!
  SystemOrganization addCategory: #'Tests-Object Events'!
  SystemOrganization addCategory: #'Tests-ObjectsAsMethods'!
  SystemOrganization addCategory: #'Tests-PrimCallController'!
  SystemOrganization addCategory: #'Tests-Release'!
  SystemOrganization addCategory: #'Tests-System-Object Storage'!
  SystemOrganization addCategory: #'Tests-System-Support'!
  SystemOrganization addCategory: #'Tests-Utilities'!
  SystemOrganization addCategory: #'Tests-VM'!
  SystemOrganization addCategory: #'Tests-System-Digital Signatures'!
+ SystemOrganization addCategory: #'Tests-System-Preferences'!

Item was added:
+ TestCase subclass: #PreferencesTest
+ instanceVariableNames: 'sut'
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'Tests-System-Preferences'!

Item was added:
+ ----- Method: PreferencesTest>>setUp (in category 'running') -----
+ setUp
+
+ super setUp.
+ sut := PreferencesTestPreferences.!

Item was added:
+ ----- Method: PreferencesTest>>tearDown (in category 'running') -----
+ tearDown
+
+ sut allPreferences do: [:pref | sut removePreference: pref id].
+ sut class organization removeEmptyCategories.
+
+ super tearDown.!

Item was added:
+ ----- Method: PreferencesTest>>test01Empty (in category 'tests') -----
+ test01Empty
+
+ self assert: sut dictionaryOfPreferences isEmpty.!

Item was added:
+ ----- Method: PreferencesTest>>test02AddSetRemovePreference (in category 'tests') -----
+ test02AddSetRemovePreference
+
+ self assert: (sut valueOfPreference: #foo ifAbsent: []) isNil.
+ self assert: (sut respondsTo: #foo) not. "auto-generated accessor"
+
+ sut addPreference: #foo category: #bar default: false.
+ self assert: (sut valueOfPreference: #foo ifAbsent: []) = false.
+ self assert: (sut perform: #foo) = false.
+
+ sut setPreference: #foo toValue: true.
+ self assert: (sut valueOfPreference: #foo ifAbsent: []) = true.
+ self assert: (sut perform: #foo) = true.
+
+ sut removePreference: #foo.
+ self assert: (sut valueOfPreference: #foo ifAbsent: []) isNil.
+ self assert: (sut respondsTo: #foo) not.!

Item was added:
+ ----- Method: PreferencesTest>>test03Type (in category 'tests') -----
+ test03Type
+
+ sut addPreference: #foo default: true.
+ self assert: (sut preferenceAt: #foo) type == #Boolean.
+
+ sut addPreference: #foo default: 123.
+ self assert: (sut preferenceAt: #foo) type == #Number.
+
+ sut addPreference: #foo default: 'Hello, World'.
+ self assert: (sut preferenceAt: #foo) type == #String.
+
+ sut addPreference: #foo default: Color red.
+ self assert: (sut preferenceAt: #foo) type == #Color.
+
+ sut addPreference: #foo default: 1@5.
+ self assert: (sut preferenceAt: #foo) type == #Object.
+ !

Item was added:
+ ----- Method: PreferencesTest>>test04TypeNoUpdate (in category 'tests') -----
+ test04TypeNoUpdate
+
+ sut addPreference: #foo default: true.
+ sut setPreference: #foo toValue: 123.
+
+ self assert: (sut preferenceAt: #foo) type == #Boolean.!

Item was added:
+ ----- Method: PreferencesTest>>test05AutoAdd (in category 'tests') -----
+ test05AutoAdd
+
+ | pref |
+ self assert: (sut valueOfPreference: #foo ifAbsent: []) isNil.
+ pref := sut setPreference: #foo toValue: 123.
+
+ self assert: pref preferenceValue = 123.!

Item was added:
+ ----- Method: PreferencesTest>>test06Flags (in category 'tests') -----
+ test06Flags
+ "Flags are boolean preferences."
+
+ self assert: (sut valueOfFlag: #isHappy) == false. "Not known but false for default."
+
+ sut setFlag: #isHappy toValue: true.
+ self assert: (sut valueOfFlag: #isHappy) == true.
+ self assert: (sut perform: #isHappy) == true.
+
+ sut disable: #useIt.
+ self assert: (sut valueOfFlag: #useIt) == false.
+ self assert: (sut perform: #useIt) == false.
+
+ sut enable: #useIt.
+ self assert: (sut valueOfFlag: #useIt) == true.
+ self assert: (sut perform: #useIt) == true.
+
+ sut toggle: #useIt.
+ self assert: (sut valueOfFlag: #useIt) == false. !

Item was added:
+ ----- Method: PreferencesTest>>test07UnknownPreference (in category 'tests') -----
+ test07UnknownPreference
+
+ self assert: (sut valueOfPreference: #notKnown) isNil.
+ self assert: (sut valueOfPreference: #notKnown ifAbsent: [#default]) = #default.!

Item was added:
+ ----- Method: PreferencesTest>>test08DNUFallback (in category 'tests') -----
+ test08DNUFallback
+
+ sut setPreference: #foo toValue: 123.
+ sut class removeSelectorSilently: #foo.
+
+ self assert: (sut perform: #foo) = 123.
+ self assert: (sut perform: #unknownSelector) isNil.!

Item was added:
+ ----- Method: PreferencesTest>>test09AddSetRemovePragmaPreference (in category 'tests') -----
+ test09AddSetRemovePragmaPreference
+
+ | id pref |
+ id := PreferencesTestExample name, '>>', #textPref.
+ pref := sut addPragmaPreference: (PreferencesTestExample class >> #textPref) pragmas first.
+
+ self assert: id equals: pref id.
+ self assert: (sut preferenceAt: pref id) == pref.
+
+ "Reset the preference explicitely."
+ PreferencesTestExample textPref: ''.
+ self assert: '' equals: PreferencesTestExample textPref.
+
+ sut setPreference: pref id toValue: 'foo'.
+ self assert: 'foo' equals: (sut valueOfPreference: pref id).
+ self assert: 'foo' equals: PreferencesTestExample textPref.
+
+ sut removePreference: pref id.
+ self assert: (sut preferenceAt: pref id ifAbsent: []) isNil.!

Item was added:
+ ----- Method: PreferencesTest>>test10Unclassified (in category 'tests') -----
+ test10Unclassified
+
+ | pref |
+ pref := sut addPreference: #foobar default: 123.
+ self assert: sut unclassifiedCategory equals: pref categoryList first.!

Item was added:
+ ----- Method: PreferencesTest>>test11CategoryList (in category 'tests') -----
+ test11CategoryList
+
+ sut addPreference: #foo category: #blubb default: 123.
+ self assert: #(blubb) equals: (sut categoryListOfPreference: #foo). !

Item was added:
+ ----- Method: PreferencesTest>>test12HardCodedPreference (in category 'tests') -----
+ test12HardCodedPreference
+
+ self assert: (sut respondsTo: #someStaticFoo) not.
+ sut compileAccessorForPreferenceNamed: #someStaticFoo value: 42.
+ self assert: 42 equals: (sut perform: #someStaticFoo).
+ self assert: (sut valueOfPreference: #someStaticFoo ifAbsent: []) isNil.
+
+ "Hard-coded preferences have their value only in the source code. We must leave them in the same package."
+ self deny: ((sut class organization categoryOfElement: #someStaticFoo) beginsWith: '*').
+
+ sut class removeSelectorSilently: #someStaticFoo.!

Item was added:
+ Object subclass: #PreferencesTestExample
+ instanceVariableNames: ''
+ classVariableNames: 'BooleanPref ColorPref NumericPref TextPref'
+ poolDictionaries: ''
+ category: 'Tests-System-Preferences'!
+
+ !PreferencesTestExample commentStamp: 'ar 3/3/2009 22:40' prior: 0!
+ This class provides an example for how to use preference pragmas.!

Item was added:
+ ----- Method: PreferencesTestExample class>>booleanPref (in category 'preferences') -----
+ booleanPref
+ <preference: 'Boolean Preference Example'
+ category: 'Examples'
+ description: 'A simple example for a boolean preference  (see PreferenceExample>>booleanPref)'
+ type: #Boolean>
+ ^BooleanPref!

Item was added:
+ ----- Method: PreferencesTestExample class>>booleanPref: (in category 'preferences') -----
+ booleanPref: aBool
+ BooleanPref := aBool.
+ self inform: 'The new preference value is: ', aBool asString.!

Item was added:
+ ----- Method: PreferencesTestExample class>>colorPref (in category 'preferences') -----
+ colorPref
+ <preference: 'Color Preference Example'
+ category: 'Examples'
+ description: 'A simple example for a color preference (see PreferenceExample>>colorPref)'
+ type: #Color>
+ ^ColorPref!

Item was added:
+ ----- Method: PreferencesTestExample class>>colorPref: (in category 'preferences') -----
+ colorPref: aColor
+ ColorPref := aColor.
+ self inform: 'The new preference value is: ', aColor asString.!

Item was added:
+ ----- Method: PreferencesTestExample class>>initialize (in category 'preferences') -----
+ initialize "PreferenceExample initialize"
+ "Initialize the default values and register preferences"
+ TextPref := 'Hello World'.
+ NumericPref := 1234.
+ BooleanPref := true.
+ ColorPref := Color green.!

Item was added:
+ ----- Method: PreferencesTestExample class>>numericPref (in category 'preferences') -----
+ numericPref
+ <preference: 'Numeric Preference Example'
+ category: 'Examples'
+ description: 'A simple example for a numeric preference (see PreferenceExample>>numericPref)'
+ type: #Number>
+ ^NumericPref!

Item was added:
+ ----- Method: PreferencesTestExample class>>numericPref: (in category 'preferences') -----
+ numericPref: aNumber
+ NumericPref := aNumber.
+ self inform: 'The new preference value is: ', aNumber asString.!

Item was added:
+ ----- Method: PreferencesTestExample class>>textPref (in category 'preferences') -----
+ textPref
+ <preference: 'Textual Preference Example'
+ category: 'Examples'
+ description: 'A simple example for a textual preference (see PreferenceExample>>textPref)'
+ type: #String>
+ ^TextPref!

Item was added:
+ ----- Method: PreferencesTestExample class>>textPref: (in category 'preferences') -----
+ textPref: aString
+ TextPref := aString.!

Item was added:
+ Preferences subclass: #PreferencesTestPreferences
+ instanceVariableNames: ''
+ classVariableNames: ''
+ poolDictionaries: ''
+ category: 'Tests-System-Preferences'!