Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
324f0d3
feat: darker color on selected row in table
nicolasp025 Apr 15, 2026
ec13221
feat: windows presenter
nicolasp025 Apr 15, 2026
2a8ad75
fix: changing dsspy shortcut
nicolasp025 Apr 15, 2026
53cb1d5
test: getTableRowColorFor
nicolasp025 Apr 15, 2026
0ce60b0
feat: windows presenter
nicolasp025 Apr 15, 2026
116a82a
refactor: removing timeline from browser
nicolasp025 Apr 15, 2026
4b9edd8
feat: showing nanoseconds for records dateTime
nicolasp025 Apr 16, 2026
e28a139
introducing statistics presenter
nicolasp025 Apr 16, 2026
2f65bd8
refactoring: introducing selectedHistory slot
nicolasp025 Apr 16, 2026
9a10e90
feat: color indicator in windows tab and some statistics in dedicated…
nicolasp025 Apr 16, 2026
5e060b5
refactoring(windows-tab): some refactoring in the evaluated methods
nicolasp025 Apr 17, 2026
a933fac
feat(colors): color indicator on records table
nicolasp025 Apr 17, 2026
681fb2f
fix(history): timeTaken and computeIdleTime + fix absoluteTimeTaken
nicolasp025 Apr 17, 2026
bb9fae2
feat(windows-tab): display time taken, idle time and fix when no idle…
nicolasp025 Apr 17, 2026
5ed9f86
fix: debugging spy windowType
nicolasp025 Apr 17, 2026
f9f61b9
test: updateStatisticsPresenter
nicolasp025 Apr 17, 2026
a3696f1
test: remove deprecated tests & fix failing tests
nicolasp025 Apr 17, 2026
6813736
test: fix failing tests
nicolasp025 Apr 17, 2026
efd2396
fix: tab column sizes and sort colors in referential
nicolasp025 Apr 17, 2026
e60daaf
fix: rebase conflict
nicolasp025 Apr 17, 2026
51c54f8
fix: PR changes
nicolasp025 Apr 20, 2026
d3c1b9c
fix: PR changes & refactoring
nicolasp025 Apr 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 65 additions & 11 deletions DebuggingSpy-Browser-Tests/DSRecordBrowserPresenterTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,26 @@ DSRecordBrowserPresenterTest >> filesPresenter [

{ #category : 'helpers' }
DSRecordBrowserPresenterTest >> generateRecordsFile [

^ self generateRecordsFileFor: self getRecordExamples
]

{ #category : 'helpers' }
DSRecordBrowserPresenterTest >> generateRecordsFileFor: someRecords [
"Generates a file of records and returns its file reference."

| records recordFileRef writeStream |
records := self getRecordExamples.
| recordFileRef writeStream |

recordFileRef := self temporaryDirectory / ('ds-spy-test-' , UUID new asString).
recordFileRef ensureCreateFile.
writeStream := recordFileRef writeStream.

writeStream nextPut: $[.

records doWithIndex: [ :record :index |
someRecords doWithIndex: [ :record :index |
writeStream nextPutAll: (STON toString: record).

index = records size ifFalse: [
index = someRecords size ifFalse: [
writeStream nextPut: $,.
writeStream crlf ] ].

Expand Down Expand Up @@ -83,6 +88,12 @@ DSRecordBrowserPresenterTest >> setUp [
browser := DSRecordBrowserPresenter new
]

{ #category : 'helpers' }
DSRecordBrowserPresenterTest >> statisticsPresenter [

^ browser presenterAt: #statisticsPresenter
]

{ #category : 'running' }
DSRecordBrowserPresenterTest >> tearDown [

Expand Down Expand Up @@ -153,15 +164,18 @@ DSRecordBrowserPresenterTest >> testColorAssociations [
| associations |
associations := {
((Color fromHexString: '#1f48ff') -> 'Browser').
((Color fromHexString: '#ff0fef') -> 'Debug point browser').
((Color fromHexString: '#772980') -> 'Debug point browser').
((Color fromHexString: '#345e54') -> 'Epicea').
((Color fromHexString: '#00e5ff') -> 'Iceberg').
((Color fromHexString: '#ff8f1f') -> 'Critique browser').
((Color fromHexString: '#ff9100') -> 'Critique browser').
((Color fromHexString: '#ff2200') -> 'Debugger').
((Color fromHexString: '#fad314') -> 'Inspector').
((Color fromHexString: '#70B77E') -> 'Playground').
((Color fromHexString: '#292929') -> 'Rewriter') }.
((Color fromHexString: '#ffffff') -> 'Rewriter').
((Color fromHexString: '#ec45ff') -> 'Debugging Spy').
((Color fromHexString: '#b3b3b3') -> 'Unknown window') }.

self assert: associations size equals: DSRecordBrowserPresenter colorAssociations size.
self assert: (associations allSatisfy: [ :asso | DSRecordBrowserPresenter colorAssociations includes: asso ])
]

Expand Down Expand Up @@ -215,7 +229,8 @@ DSRecordBrowserPresenterTest >> testGetHistoryFrom [

| fileRef |
fileRef := self generateRecordsFile.
self assert: (browser getHistoryFrom: fileRef) class equals: DSRecordHistory
self assert: (browser getHistoryFrom: fileRef) class equals: DSRecordHistory.
self assert: (browser getHistoryFrom: nil) isNil
]

{ #category : 'tests' }
Expand Down Expand Up @@ -332,10 +347,10 @@ DSRecordBrowserPresenterTest >> testUpdateLastRecord [
{ #category : 'tests' }
DSRecordBrowserPresenterTest >> testUpdateRecordsTable [

| fileRef presenterMock |
| fileRef |
fileRef := self generateRecordsFile.
presenterMock := MockObject new on: #selectedItem respond: fileRef.
browser updateRecordsTable: presenterMock.
browser selectedHistory: (browser getHistoryFrom: fileRef).
browser updateRecordsTable.

self assert: self recordsTablePresenter roots first key class equals: DSBrowseRecord.
self assert: (self recordsTablePresenter roots at: 2) key class equals: DSMouseEnterWindowRecord.
Expand All @@ -354,6 +369,39 @@ DSRecordBrowserPresenterTest >> testUpdateRecordsTableWhenAddingFile [
self assert: self recordsTablePresenter roots last key class equals: DSInspectItRecord
]

{ #category : 'tests' }
DSRecordBrowserPresenterTest >> testUpdateStatisticsPresenter [

| children |
self assert: browser updateStatisticsPresenter equals: browser.

browser selectedHistory: (browser getHistoryFrom: self generateRecordsFile).
browser updateStatisticsPresenter.

children := self statisticsPresenter children.
self assert: children size equals: 5.

self assert: children keys first label equals: 'Number of events: 4'.
self assert: children keys second label equals: 'Number of windows: 4'.
self assert: children keys third label equals: 'Time taken: 00:00:03'.
self assert: children keys fourth label equals: 'Idle time: 00:00:00'.
self assert: children keys last label equals: 'Absolute time taken: 00:00:03'
]

{ #category : 'tests' }
DSRecordBrowserPresenterTest >> testUpdateWindowsPresenter [

| records fileRef windows |
records := self getRecordExamples.
fileRef := self generateRecordsFileFor: records.
browser selectedHistory: (browser getHistoryFrom: fileRef).
browser updateWindowsPresenter.

windows := self windowsPresenter roots.
self assert: windows size equals: 4.
self assert: (windows allSatisfy: [ :window | window class = DSWindowRecord ])
]

{ #category : 'tests' }
DSRecordBrowserPresenterTest >> testWindowColorFrom [

Expand All @@ -368,3 +416,9 @@ DSRecordBrowserPresenterTest >> timelinePresenter [

^ browser presenterAt: #graphicTimeline
]

{ #category : 'helpers' }
DSRecordBrowserPresenterTest >> windowsPresenter [

^ browser presenterAt: #windowsPresenter
]
28 changes: 28 additions & 0 deletions DebuggingSpy-Browser/DSAbstractEventRecord.extension.st
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,31 @@ DSAbstractEventRecord class >> getLeafSubClasses [

^ classes
]

{ #category : '*DebuggingSpy-Browser' }
DSAbstractEventRecord >> printAsFormattedTime [
"Returns the specified date and time as a string of format hh:mm:ss.nnnnnnnnn"

^ (String new: 18 streamContents: [ :aStream | dateTime asTime print24: true showSeconds: true on: aStream ]) asText allBold
]

{ #category : '*DebuggingSpy-Browser' }
DSAbstractEventRecord >> type [
"Returns the record's type to be displayed in the windows presenter."

^ self class name
]

{ #category : '*DebuggingSpy-Browser' }
DSAbstractEventRecord >> window [
"Returns the record's window from the browser selected history."

^ DSRecordBrowserPresenter uniqueInstance getWindowFromRecord: self
]

{ #category : '*DebuggingSpy-Browser' }
DSAbstractEventRecord >> windowColor [
"Returns the record's window color."

^ self window windowColor
]
Loading