Skip to content

Commit

Permalink
#43: improves end2end test for Timestamp Settings a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
rladstaetter committed Aug 25, 2024
1 parent d6aa8ef commit 20966d8
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ import app.logorrr.TestFiles
import app.logorrr.conf.LogoRRRGlobals
import app.logorrr.io.FileId
import app.logorrr.usecases.SingleFileApplicationTest
import app.logorrr.views.ops.time.{SliderVBox, TimestampSettingsButton}
import app.logorrr.views.ops.time.{SliderVBox, TimerSlider, TimestampSettingsButton}
import app.logorrr.views.settings.timestamp.{LogViewLabel, TimeFormatTextField, TimestampFormatResetButton, TimestampFormatSetButton}
import javafx.geometry.Pos
import javafx.scene.input.MouseButton
import org.junit.jupiter.api.Test

/**
Expand All @@ -16,9 +17,8 @@ import org.junit.jupiter.api.Test
*
* - clicks on timersettings button to open timer settings stage and clicks reset
* - clicks on timersettings button and click on 'set format'
* - clicks on timersettings button
* - clicks on timersettings button and configure the position of the timestamp and set the timestamp format
*
* -
*/
class OpenSingleTimedFileTest extends SingleFileApplicationTest(TestFiles.timedLog) {

Expand Down Expand Up @@ -62,9 +62,24 @@ class OpenSingleTimedFileTest extends SingleFileApplicationTest(TestFiles.timedL

assert(LogoRRRGlobals.getLogFileSettings(fileId).hasTimestampSetting.get())

val earilestTimestamp = "2023-08-02 21:16:33,193"
val latestTimestamp = "2023-08-02 21:16:38,656"

// expect lowest and highest timestamp
expectLabelText(fileId, Pos.CENTER_LEFT, "2023-08-02 21:16:33,193")
expectLabelText(fileId, Pos.CENTER_RIGHT, "2023-08-02 21:16:38,656")
expectLabelText(fileId, Pos.CENTER_LEFT, earilestTimestamp)
expectLabelText(fileId, Pos.CENTER_RIGHT, latestTimestamp)

// now, change the right slider (starting with the middle of the slider)
drag(SliderVBox.uiNode(fileId, Pos.CENTER_RIGHT).ref).moveBy(-TimerSlider.Width / 2, 0).release(MouseButton.PRIMARY)
expectLabelText(fileId, Pos.CENTER_RIGHT, earilestTimestamp)

// put right slider back, also move lower slider
drag(SliderVBox.uiNode(fileId, Pos.CENTER_RIGHT).ref).moveBy(TimerSlider.Width, 0).release(MouseButton.PRIMARY)
expectLabelText(fileId, Pos.CENTER_RIGHT, latestTimestamp)

// drag lower slider to highest point
drag(SliderVBox.uiNode(fileId, Pos.CENTER_LEFT).ref).moveBy(TimerSlider.Width/2, 0).release(MouseButton.PRIMARY)
expectLabelText(fileId, Pos.CENTER_LEFT, latestTimestamp)

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ class SliderVBox(mutLogFileSettings: MutLogFileSettings
, tooltipText: String
, pos: Pos) extends VBox {

setId(SliderVBox.uiNode(mutLogFileSettings.getFileId,pos).value)
val slider = new TimerSlider(mutLogFileSettings.hasTimestampSetting, tooltipText)
setId(SliderVBox.uiNode(mutLogFileSettings.getFileId, pos).value)
val slider = new TimerSlider(mutLogFileSettings, pos, tooltipText)
val label = new TimestampSliderLabel(mutLogFileSettings, slider)

setAlignment(pos)
Expand Down
21 changes: 15 additions & 6 deletions app/src/main/scala/app/logorrr/views/ops/time/TimerSlider.scala
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
package app.logorrr.views.ops.time

import app.logorrr.conf.mut.MutLogFileSettings
import app.logorrr.io.FileId
import app.logorrr.model.LogEntry
import javafx.beans.binding.BooleanBinding
import app.logorrr.views.{UiNode, UiNodeFileIdAndPosAware}
import javafx.collections.ObservableList
import javafx.geometry.Pos
import javafx.scene.control.{Slider, Tooltip}

import java.time.format.DateTimeFormatter
import java.time.{Instant, LocalDateTime, ZoneId}


object TimerSlider extends UiNodeFileIdAndPosAware {

object TimerSlider {
val Width = 350

def format(epochMilli: Long, formatter: DateTimeFormatter): String = {
val instant = Instant.ofEpochMilli(epochMilli)
Expand Down Expand Up @@ -48,14 +52,19 @@ object TimerSlider {
} else None
}

override def uiNode(id: FileId, pos: Pos): UiNode = UiNode(id, pos, classOf[TimerSlider])
}

class TimerSlider(hasLogEntrySettingsBinding: BooleanBinding, tooltipText: String) extends Slider {
class TimerSlider(mutLogFileSettings: MutLogFileSettings
, pos: Pos
, tooltipText: String) extends Slider {

visibleProperty().bind(hasLogEntrySettingsBinding)
disableProperty().bind(hasLogEntrySettingsBinding.not)
setId(TimerSlider.uiNode(mutLogFileSettings.getFileId, pos).value)

visibleProperty().bind(mutLogFileSettings.hasTimestampSetting)
disableProperty().bind(mutLogFileSettings.hasTimestampSetting.not)
setTooltip(new Tooltip(tooltipText))
setPrefWidth(350)
setPrefWidth(TimerSlider.Width)

def setBoundsAndValue(minInstant: Instant
, maxInstant: Instant
Expand Down

0 comments on commit 20966d8

Please sign in to comment.