diff options
Diffstat (limited to 'test/simpleTests.py')
| -rw-r--r-- | test/simpleTests.py | 101 | 
1 files changed, 85 insertions, 16 deletions
diff --git a/test/simpleTests.py b/test/simpleTests.py index c1407ad7c..9ac1c43fd 100644 --- a/test/simpleTests.py +++ b/test/simpleTests.py @@ -1933,50 +1933,119 @@ class TestElements(unittest.TestCase):  		self.ed.ClearAll()  		self.ed.EmptyUndoBuffer()  		self.testColourAlpha = 0x18171615 +		self.opaque = 0xff000000 +		self.dropAlpha = 0x00ffffff  	def tearDown(self):  		pass +		 +	def ElementColour(self, element): +		# & 0xffffffff prevents sign extension issues +		return self.ed.GetElementColour(element) & 0xffffffff + +	def RestoreCaretLine(self): +		self.ed.CaretLineLayer = 0 +		self.ed.CaretLineFrame = 0 +		self.ed.ResetElementColour(self.ed.SC_ELEMENT_CARET_LINE_BACK) +		self.ed.CaretLineVisibleAlways = False  	def testIsSet(self): -		self.assertEquals(self.ed.GetElementIsSet(self.ed.SC_ELEMENT_SELECTION_TEXT), 0) +		self.assertFalse(self.ed.GetElementIsSet(self.ed.SC_ELEMENT_SELECTION_TEXT))  	def testAllowsTranslucent(self): -		self.assertEquals(self.ed.GetElementAllowsTranslucent(self.ed.SC_ELEMENT_LIST), 0) -		self.assertEquals(self.ed.GetElementAllowsTranslucent(self.ed.SC_ELEMENT_SELECTION_TEXT), 1) +		self.assertFalse(self.ed.GetElementAllowsTranslucent(self.ed.SC_ELEMENT_LIST)) +		self.assertTrue(self.ed.GetElementAllowsTranslucent(self.ed.SC_ELEMENT_SELECTION_TEXT))  	def testChanging(self):  		self.ed.SetElementColour(self.ed.SC_ELEMENT_LIST_BACK, self.testColourAlpha) -		self.assertEquals(self.ed.GetElementColour(self.ed.SC_ELEMENT_LIST_BACK), self.testColourAlpha) -		self.assertEquals(self.ed.GetElementIsSet(self.ed.SC_ELEMENT_LIST_BACK), 1) +		self.assertEquals(self.ElementColour(self.ed.SC_ELEMENT_LIST_BACK), self.testColourAlpha) +		self.assertTrue(self.ed.GetElementIsSet(self.ed.SC_ELEMENT_LIST_BACK))  	def testReset(self):  		self.ed.SetElementColour(self.ed.SC_ELEMENT_SELECTION_ADDITIONAL_TEXT, self.testColourAlpha) -		self.assertEquals(self.ed.GetElementColour(self.ed.SC_ELEMENT_SELECTION_ADDITIONAL_TEXT), self.testColourAlpha) +		self.assertEquals(self.ElementColour(self.ed.SC_ELEMENT_SELECTION_ADDITIONAL_TEXT), self.testColourAlpha)  		self.ed.ResetElementColour(self.ed.SC_ELEMENT_SELECTION_ADDITIONAL_TEXT) -		self.assertEquals(self.ed.GetElementColour(self.ed.SC_ELEMENT_SELECTION_ADDITIONAL_TEXT), 0) -		self.assertEquals(self.ed.GetElementIsSet(self.ed.SC_ELEMENT_SELECTION_ADDITIONAL_TEXT), 0) +		self.assertEquals(self.ElementColour(self.ed.SC_ELEMENT_SELECTION_ADDITIONAL_TEXT), 0) +		self.assertFalse(self.ed.GetElementIsSet(self.ed.SC_ELEMENT_SELECTION_ADDITIONAL_TEXT))  	def testBaseColour(self):  		if sys.platform == "win32":  			# SC_ELEMENT_LIST* base colours only currently implemented on Win32 -			opaque = 0xff000000 -			dropAlpha = 0x00ffffff  			text = self.ed.GetElementBaseColour(self.ed.SC_ELEMENT_LIST)  			back = self.ed.GetElementBaseColour(self.ed.SC_ELEMENT_LIST_BACK) -			self.assertEquals(text & opaque, opaque) -			self.assertEquals(back & opaque, opaque) -			self.assertNotEquals(text & dropAlpha, back & dropAlpha) +			self.assertEquals(text & self.opaque, self.opaque) +			self.assertEquals(back & self.opaque, self.opaque) +			self.assertNotEquals(text & self.dropAlpha, back & self.dropAlpha)  			selText = self.ed.GetElementBaseColour(self.ed.SC_ELEMENT_LIST_SELECTED)  			selBack = self.ed.GetElementBaseColour(self.ed.SC_ELEMENT_LIST_SELECTED_BACK) -			self.assertEquals(selText & opaque, opaque) -			self.assertEquals(selBack & opaque, opaque) -			self.assertNotEquals(selText & dropAlpha, selBack & dropAlpha) +			self.assertEquals(selText & self.opaque, self.opaque) +			self.assertEquals(selBack & self.opaque, self.opaque) +			self.assertNotEquals(selText & self.dropAlpha, selBack & self.dropAlpha)  	def testSelectionLayer(self):  		self.ed.SelectionLayer = self.ed.SC_LAYER_OVER_TEXT  		self.assertEquals(self.ed.SelectionLayer, self.ed.SC_LAYER_OVER_TEXT)  		self.ed.SelectionLayer = self.ed.SC_LAYER_BASE  		self.assertEquals(self.ed.SelectionLayer, self.ed.SC_LAYER_BASE) +		 +	def testCaretLine(self): +		# Newer Layer / ElementColour API +		self.assertEquals(self.ed.CaretLineLayer, 0) +		self.assertFalse(self.ed.GetElementIsSet(self.ed.SC_ELEMENT_CARET_LINE_BACK)) +		self.assertEquals(self.ed.CaretLineFrame, 0) +		self.assertFalse(self.ed.CaretLineVisibleAlways) +		 +		self.ed.CaretLineLayer = 10 +		self.assertEquals(self.ed.CaretLineLayer, 10) +		self.ed.CaretLineFrame = 2 +		self.assertEquals(self.ed.CaretLineFrame, 2) +		self.ed.CaretLineVisibleAlways = True +		self.assertTrue(self.ed.CaretLineVisibleAlways) +		self.ed.SetElementColour(self.ed.SC_ELEMENT_CARET_LINE_BACK, self.testColourAlpha) +		self.assertEquals(self.ElementColour(self.ed.SC_ELEMENT_CARET_LINE_BACK), self.testColourAlpha) +		 +		self.RestoreCaretLine() + +	def testCaretLineLayerDiscouraged(self): +		# Check old discouraged APIs +		# This is s bit tricky as there is no clean mapping: parts of the old state are distributed to +		# sometimes-multiple parts of the new state. +		backColour = 0x102030 +		backColourOpaque = backColour | self.opaque +		self.assertEquals(self.ed.CaretLineVisible, 0) +		self.ed.CaretLineVisible = 1 +		self.assertTrue(self.ed.GetElementIsSet(self.ed.SC_ELEMENT_CARET_LINE_BACK)) +		self.assertEquals(self.ed.CaretLineVisible, 1) +		self.ed.CaretLineBack = backColour +		self.assertEquals(self.ed.CaretLineBack, backColour) +		# Check with newer API +		self.assertTrue(self.ed.GetElementIsSet(self.ed.SC_ELEMENT_CARET_LINE_BACK)) +		self.assertEquals(self.ElementColour(self.ed.SC_ELEMENT_CARET_LINE_BACK), backColourOpaque) +		self.assertEquals(self.ed.CaretLineLayer, 0) + +		alpha = 0x7f +		self.ed.CaretLineBackAlpha = alpha +		self.assertEquals(self.ed.CaretLineBackAlpha, alpha) +		backColourTranslucent = backColour | (alpha << 24) +		self.assertEquals(self.ElementColour(self.ed.SC_ELEMENT_CARET_LINE_BACK), backColourTranslucent) +		self.assertEquals(self.ed.CaretLineLayer, 10) +		 +		self.ed.CaretLineBackAlpha = 0x100 +		self.assertEquals(self.ed.CaretLineBackAlpha, 0x100) +		self.assertEquals(self.ed.CaretLineLayer, 0)	# SC_ALPHA_NOALPHA moved to base layer +		 +		self.RestoreCaretLine() +		 +		# Try other orders + +		self.ed.CaretLineBackAlpha = 0x100 +		self.assertEquals(self.ed.CaretLineBackAlpha, 0x100) +		self.assertEquals(self.ed.CaretLineLayer, 0)	# SC_ALPHA_NOALPHA moved to base layer +		self.assertTrue(self.ed.GetElementIsSet(self.ed.SC_ELEMENT_CARET_LINE_BACK)) +		self.ed.CaretLineVisible = 0 +		self.assertFalse(self.ed.GetElementIsSet(self.ed.SC_ELEMENT_CARET_LINE_BACK)) + +		self.RestoreCaretLine()  class TestIndices(unittest.TestCase):  	def setUp(self):  | 
