Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
41 changes: 37 additions & 4 deletions DebuggingSpy-Browser-Tests/DSRecordBrowserTest.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,11 @@ DSRecordBrowserTest >> filesPresenter [
DSRecordBrowserTest >> generateRecordFile: aNumberOfRecords [

| recordFileRef records |
browser startRecording.
recordFileRef := logger ensureCreateLoggingFileReference.
DSSpy recordingSession ifFalse: [ browser startRecording ].

recordFileRef := self updateLoggerFileName.
records := OrderedCollection new.

1 to: aNumberOfRecords do: [ :i |
records add: (DSMouseEnterWindowRecord new
windowId: 'test' , i asString;
Expand All @@ -45,14 +47,17 @@ DSRecordBrowserTest >> setUp [
DSSpy testingSession: true.

logger := DSSpy logger loggingDirectory: self temporaryDirectory.
self updateLoggerFileName.

browser := DSRecordBrowser new
]

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

DSRecordRegistry current reset.
browser stopRecording.
DSSpy recordingSession ifTrue: [ browser stopRecording ].

super tearDown
]

Expand Down Expand Up @@ -112,6 +117,22 @@ DSRecordBrowserTest >> testGetHistoryOf [
self assert: (DSRecordBrowser getHistoryOf: fileRef) records size equals: 5
]

{ #category : 'tests' }
DSRecordBrowserTest >> testRemoveFile [

| fileRef1 fileRef2 |
fileRef1 := self generateRecordFile: 42.
fileRef2 := self generateRecordFile: 42.

browser addFile: fileRef1.
browser addFile: fileRef2.
browser removeFile: fileRef1.

self assert: browser files size equals: 1.
self assert: self filesPresenter items size equals: 1.
self assert: self filesPresenter selectedItem equals: fileRef2
]

{ #category : 'tests' }
DSRecordBrowserTest >> testStartRecording [

Expand All @@ -122,7 +143,7 @@ DSRecordBrowserTest >> testStartRecording [
browser startRecording.
self assert: DSSpy recordingSession.
self assert: DSRecordRegistry autoSerialize.
self deny: browser recorderWindow isNil
self deny: browser recorderWindow isNil.
]

{ #category : 'helpers' }
Expand All @@ -136,3 +157,15 @@ DSRecordBrowserTest >> toolbarPresenter [

^ browser presenterAt: #toolbar
]

{ #category : 'helpers' }
DSRecordBrowserTest >> updateLoggerFileName [
"Changes the logging file name, needs to be called everytime a new file is created for the logger to be updated for future logs.
Using a UUID ensures that multiple files created at the same date and time dont have the same file name."

| fr |
logger loggingFileName: UUID new asString.
fr := logger ensureCreateLoggingFileReference.
logger loggingFileReference: fr.
^ fr
]
42 changes: 31 additions & 11 deletions DebuggingSpy-Browser/DSRecordBrowser.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -103,11 +103,10 @@ DSRecordBrowser class >> toggleBrowser [
^ presenter window isOpen
ifTrue: [ presenter window close ]
ifFalse: [ presenter window open ] ].

self browser open
]

{ #category : 'adding' }
{ #category : 'files' }
DSRecordBrowser >> addFile: aFileReference [
"Adds a file in the presenter and set is as selected, which updates the records displayed."

Expand Down Expand Up @@ -135,9 +134,8 @@ DSRecordBrowser >> connectPresenters [
"Updates the records and the timeline whenever the selected file is changed."

addedFilesPresenter whenSelectionChangedDo: [ :presenter |
presenter selectedItem ifNotNil: [
self updateSelectedRecords: presenter.
self updateTimelineChart ] ].
self updateSelectedRecords: presenter.
self updateTimelineChart ].

recordsFilter whenChangedDo: [
addedFilesPresenter selectedItem ifNotNil: [
Expand Down Expand Up @@ -206,15 +204,24 @@ DSRecordBrowser >> listAddedFilesActions [
addActionWith: [ :anItem |
anItem
name: 'Inspect';
iconName: #inspect;
description: 'Inspect the raw records';
shortcutKey: $i meta;
action: [ (DSSpy materialize: addedFilesPresenter selectedItem) inspect ] ];
addActionWith: [ :anItem |
anItem
name: 'Inspect history';
iconName: #history;
description: 'Inspect the record history';
shortcutKey: $h meta;
action: [ (self class getHistoryOf: addedFilesPresenter selectedItem) inspect ] ];
addActionWith: [ :anItem |
anItem
name: 'Remove';
iconName: #remove;
description: 'Remove the record from list';
shortcutKey: $x meta;
action: [ self removeFile: addedFilesPresenter selectedItem ] ];
yourself
]

Expand All @@ -225,6 +232,7 @@ DSRecordBrowser >> listRecordActions [
addActionWith: [ :anItem |
anItem
name: 'Inspect';
iconName: #inspect;
description: 'Inspect the raw records';
shortcutKey: $i meta;
action: [ selectedRecordsPresenter selectedItem record inspect ] ];
Expand Down Expand Up @@ -282,6 +290,16 @@ DSRecordBrowser >> recordsTable [
yourself
]

{ #category : 'files' }
DSRecordBrowser >> removeFile: aFileReference [

files := files reject: [ :fileReference | fileReference = aFileReference ].
addedFilesPresenter items: self files.
addedFilesPresenter selectItem: (files isEmpty
ifTrue: [ nil ]
ifFalse: [ files last ])
]

{ #category : 'initialization' }
DSRecordBrowser >> resetBrowser [

Expand Down Expand Up @@ -310,7 +328,7 @@ DSRecordBrowser >> startRecording [
recorderWindow
openInWorld;
startTimer.
DSSpyInstrumenter instrumentSystem.
DSSpyInstrumenter instrumentSystem
]

{ #category : 'layout' }
Expand Down Expand Up @@ -347,8 +365,8 @@ DSRecordBrowser >> timelineChart [
names := history windows collect: [ :i | i getWindowType ].

data := self class getTimelinePointsFrom: history.
data size < 2 ifTrue: [^ nil].
data size < 2 ifTrue: [ ^ nil ].

chart := RSCompositeChart new.
chart addAll: data.

Expand All @@ -369,8 +387,10 @@ DSRecordBrowser >> updateSelectedRecords: aPresenter [
"Updates the selected records and processes it to be used with their respective colors."

| records |
records := self class getColoredRecordsOf: (self class getHistoryOf: aPresenter selectedItem) windows.
records := records reject: [ :coloredRecord | self recordsFilter chosenItems includes: coloredRecord record class ].
records := OrderedCollection new.
aPresenter selectedItem ifNotNil: [
records := self class getColoredRecordsOf: (self class getHistoryOf: aPresenter selectedItem) windows.
records := records reject: [ :coloredRecord | self recordsFilter chosenItems includes: coloredRecord record class ] ].
selectedRecords := records.
selectedRecordsPresenter
roots: selectedRecords;
Expand All @@ -382,7 +402,7 @@ DSRecordBrowser >> updateTimelineChart [

| chart |
chart := self timelineChart.
chart ifNotNil: [ timeline script: [ :canvas | chart renderIn: canvas ] ].
chart ifNil: [ timeline script: [ :canvas | ] ] ifNotNil: [ timeline script: [ :canvas | chart renderIn: canvas ] ].
timeline refresh
]

Expand Down
6 changes: 6 additions & 0 deletions DebuggingSpy/DSSTONFileLogger.class.st
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@ DSSTONFileLogger >> loggingFileReference [
loggingFileReference := self ensureCreateLoggingFileReference ]
]

{ #category : 'accessing' }
DSSTONFileLogger >> loggingFileReference: aFileReference [

^ loggingFileReference := aFileReference
]

{ #category : 'initialization' }
DSSTONFileLogger >> reset [

Expand Down