diff --git a/src/TreeSitter-Tests/TSLanguageCSSTest.class.st b/src/TreeSitter-Tests/TSLanguageCSSTest.class.st new file mode 100644 index 0000000..ee877f7 --- /dev/null +++ b/src/TreeSitter-Tests/TSLanguageCSSTest.class.st @@ -0,0 +1,55 @@ +Class { + #name : 'TSLanguageCSSTest', + #superclass : 'TestCase', + #instVars : [ + 'parser', + 'cssLanguage' + ], + #category : 'TreeSitter-Tests', + #package : 'TreeSitter-Tests' +} + +{ #category : 'running' } +TSLanguageCSSTest >> setUp [ + + super setUp. + self timeLimit: 120 seconds. + parser := TSParser new. + cssLanguage := TSLanguage css. + parser language: cssLanguage +] + +{ #category : 'running' } +TSLanguageCSSTest >> tearDown [ + + parser delete. + super tearDown +] + +{ #category : 'tests' } +TSLanguageCSSTest >> testCollectAllSymbolOfOneSymbolType [ + + self + assert: + (parser language symbolsOfType: TSSymbolType tssymboltyperegular) + size + equals: 82 +] + +{ #category : 'tests' } +TSLanguageCSSTest >> testRetrieveSymbolName [ + + self assert: (parser language nameOfSymbol: 1) equals: '@import' +] + +{ #category : 'tests' } +TSLanguageCSSTest >> testRetrieveSymbolType [ + + self assert: (parser language typeOfSymbol: 1) equals: TSSymbolType tssymboltypeanonymous +] + +{ #category : 'tests' } +TSLanguageCSSTest >> testTypescriptNumberOfSymbol [ + + self assert: parser language symbolCount equals: 151 +] diff --git a/src/TreeSitter-Tests/TSLanguageHTMLTest.class.st b/src/TreeSitter-Tests/TSLanguageHTMLTest.class.st new file mode 100644 index 0000000..21cb5d6 --- /dev/null +++ b/src/TreeSitter-Tests/TSLanguageHTMLTest.class.st @@ -0,0 +1,55 @@ +Class { + #name : 'TSLanguageHTMLTest', + #superclass : 'TestCase', + #instVars : [ + 'parser', + 'htmlLanguage' + ], + #category : 'TreeSitter-Tests', + #package : 'TreeSitter-Tests' +} + +{ #category : 'running' } +TSLanguageHTMLTest >> setUp [ + + super setUp. + self timeLimit: 120 seconds. + parser := TSParser new. + htmlLanguage := TSLanguage html. + parser language: htmlLanguage +] + +{ #category : 'running' } +TSLanguageHTMLTest >> tearDown [ + + parser delete. + super tearDown +] + +{ #category : 'tests' } +TSLanguageHTMLTest >> testCollectAllSymbolOfOneSymbolType [ + + self + assert: + (parser language symbolsOfType: TSSymbolType tssymboltyperegular) + size + equals: 26 +] + +{ #category : 'tests' } +TSLanguageHTMLTest >> testRetrieveSymbolName [ + + self assert: (parser language nameOfSymbol: 1) equals: '> testRetrieveSymbolType [ + + self assert: (parser language typeOfSymbol: 1) equals: TSSymbolType tssymboltypeanonymous +] + +{ #category : 'tests' } +TSLanguageHTMLTest >> testTypescriptNumberOfSymbol [ + + self assert: parser language symbolCount equals: 41 +] diff --git a/src/TreeSitter-Tests/TSLanguageXMLTest.class.st b/src/TreeSitter-Tests/TSLanguageXMLTest.class.st new file mode 100644 index 0000000..4d31f8a --- /dev/null +++ b/src/TreeSitter-Tests/TSLanguageXMLTest.class.st @@ -0,0 +1,55 @@ +Class { + #name : 'TSLanguageXMLTest', + #superclass : 'TestCase', + #instVars : [ + 'parser', + 'xmlLanguage' + ], + #category : 'TreeSitter-Tests', + #package : 'TreeSitter-Tests' +} + +{ #category : 'running' } +TSLanguageXMLTest >> setUp [ + + super setUp. + self timeLimit: 120 seconds. + parser := TSParser new. + xmlLanguage := TSLanguage xml. + parser language: xmlLanguage +] + +{ #category : 'running' } +TSLanguageXMLTest >> tearDown [ + + parser delete. + super tearDown +] + +{ #category : 'tests' } +TSLanguageXMLTest >> testCollectAllSymbolOfOneSymbolType [ + + self + assert: + (parser language symbolsOfType: TSSymbolType tssymboltyperegular) + size + equals: 53 +] + +{ #category : 'tests' } +TSLanguageXMLTest >> testRetrieveSymbolName [ + + self assert: (parser language nameOfSymbol: 1) equals: 'Name' +] + +{ #category : 'tests' } +TSLanguageXMLTest >> testRetrieveSymbolType [ + + self assert: (parser language typeOfSymbol: 1) equals: TSSymbolType tssymboltyperegular +] + +{ #category : 'tests' } +TSLanguageXMLTest >> testTypescriptNumberOfSymbol [ + + self assert: parser language symbolCount equals: 143 +] diff --git a/src/TreeSitter-Tests/TSParserCSSTest.class.st b/src/TreeSitter-Tests/TSParserCSSTest.class.st new file mode 100644 index 0000000..84d43c8 --- /dev/null +++ b/src/TreeSitter-Tests/TSParserCSSTest.class.st @@ -0,0 +1,103 @@ +Class { + #name : 'TSParserCSSTest', + #superclass : 'TestCase', + #instVars : [ + 'parser', + 'cssLanguage' + ], + #category : 'TreeSitter-Tests', + #package : 'TreeSitter-Tests' +} + +{ #category : 'running' } +TSParserCSSTest >> setUp [ + + super setUp. + self timeLimit: 120 seconds. + parser := TSParser new. + cssLanguage := TSLanguage css. + parser language: cssLanguage +] + +{ #category : 'running' } +TSParserCSSTest >> tearDown [ + + parser delete. + super tearDown +] + +{ #category : 'tests' } +TSParserCSSTest >> testPositionEndPointInString [ + + | string tree | + + string := '.myClass { + color: blue; + margin-left: 40px; + }' withPlatformLineEndings. + + tree := parser parseString: string. + self + assert: (string positionFromTSPoint: + tree rootNode namedChildren first endPoint) + equals: 59 +] + +{ #category : 'tests' } +TSParserCSSTest >> testPositionInString [ + + | string tree | + + string := '.myClass { + color: blue; + margin-left: 40px; + }' withPlatformLineEndings. + + tree := parser parseString: string. + self + assert: (string positionFromTSPoint: + tree rootNode namedChildren first namedChildren second startPoint) + equals: 9 +] + +{ #category : 'tests' } +TSParserCSSTest >> testRootNodeSymbolSimpleCSSClass [ + + | string tree | + + string := '.myClass { + color: blue; + margin-left: 40px; + }' withPlatformLineEndings. + + tree := parser parseString: string. + self assert: tree rootNode symbol equals: 75 +] + +{ #category : 'tests' } +TSParserCSSTest >> testRootOfSimpleCSSClasstHasOneChild [ + + | string tree | + + string := '.myClass { + color: blue; + margin-left: 40px; + }' withPlatformLineEndings. + + tree := parser parseString: string. + self assert: tree rootNode childCount equals: 1 +] + +{ #category : 'tests' } +TSParserCSSTest >> testRootOfSimpleCSSClasstHasOneNamedChild [ + + | string tree | + + string := '.myClass { + color: blue; + margin-left: 40px; + }' withPlatformLineEndings. + + tree := parser parseString: string. + self assert: tree rootNode namedChildCount equals: 1 +] diff --git a/src/TreeSitter-Tests/TSParserHTMLTest.class.st b/src/TreeSitter-Tests/TSParserHTMLTest.class.st new file mode 100644 index 0000000..d042a2b --- /dev/null +++ b/src/TreeSitter-Tests/TSParserHTMLTest.class.st @@ -0,0 +1,133 @@ +Class { + #name : 'TSParserHTMLTest', + #superclass : 'TestCase', + #instVars : [ + 'parser', + 'htmlLanguage' + ], + #category : 'TreeSitter-Tests', + #package : 'TreeSitter-Tests' +} + +{ #category : 'running' } +TSParserHTMLTest >> setUp [ + + super setUp. + self timeLimit: 120 seconds. + parser := TSParser new. + htmlLanguage := TSLanguage html. + parser language: htmlLanguage +] + +{ #category : 'running' } +TSParserHTMLTest >> tearDown [ + + parser delete. + super tearDown +] + +{ #category : 'tests' } +TSParserHTMLTest >> testPositionEndPointInString [ + + | string tree | + string := ' +
+This is a paragraph.
+ + +' withPlatformLineEndings. + + tree := parser parseString: string. + self + assert: (string positionFromTSPoint: + tree rootNode namedChildren first endPoint) + equals: 127 +] + +{ #category : 'tests' } +TSParserHTMLTest >> testPositionInString [ + + | string tree | + string := ' + +This is a paragraph.
+ + +' withPlatformLineEndings. + + tree := parser parseString: string. + self + assert: (string positionFromTSPoint: + tree rootNode namedChildren first namedChildren second startPoint) + equals: 7 +] + +{ #category : 'tests' } +TSParserHTMLTest >> testRootNodeSymbolSimpleHTMLDocument [ + + | string tree | + string := ' + +This is a paragraph.
+ + +' withPlatformLineEndings. + + tree := parser parseString: string. + self assert: tree rootNode symbol equals: 25 +] + +{ #category : 'tests' } +TSParserHTMLTest >> testRootOfSimpleHTMLDocumentHasOneChild [ + + | string tree | + string := ' + +This is a paragraph.
+ + +' withPlatformLineEndings. + + tree := parser parseString: string. + self assert: tree rootNode childCount equals: 1 +] + +{ #category : 'tests' } +TSParserHTMLTest >> testRootOfSimpleHTMLDocumentHasOneNamedChild [ + + | string tree | + string := ' + +This is a paragraph.
+ + +' withPlatformLineEndings. + + tree := parser parseString: string. + self assert: tree rootNode namedChildCount equals: 1 +] diff --git a/src/TreeSitter-Tests/TSParserXMLTest.class.st b/src/TreeSitter-Tests/TSParserXMLTest.class.st new file mode 100644 index 0000000..24082b6 --- /dev/null +++ b/src/TreeSitter-Tests/TSParserXMLTest.class.st @@ -0,0 +1,82 @@ +Class { + #name : 'TSParserXMLTest', + #superclass : 'TestCase', + #instVars : [ + 'parser', + 'xmlLanguage' + ], + #category : 'TreeSitter-Tests', + #package : 'TreeSitter-Tests' +} + +{ #category : 'running' } +TSParserXMLTest >> setUp [ + + super setUp. + self timeLimit: 120 seconds. + parser := TSParser new. + xmlLanguage := TSLanguage xml. + parser language: xmlLanguage +] + +{ #category : 'running' } +TSParserXMLTest >> tearDown [ + + parser delete. + super tearDown +] + +{ #category : 'tests' } +TSParserXMLTest >> testPositionEndPointInString [ + + | string tree | + string := '