aboutsummaryrefslogtreecommitdiff
path: root/test/content/mock/MockScrollPresenter.ts
blob: 8b4cf2ae3bd829abb161e60d0a6bb768d10afaec (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import ScrollPresenter, {
  Point,
} from "../../../src/content/presenters/ScrollPresenter";

export default class MockScrollPresenter implements ScrollPresenter {
  private readonly pos: Point;

  constructor(initX = 0, initY = 0) {
    this.pos = { x: initX, y: initY };
  }

  getScroll(): Point {
    return this.pos;
  }

  scrollVertically(amount: number, _smooth: boolean): void {
    this.pos.y += amount;
  }

  scrollHorizonally(amount: number, _smooth: boolean): void {
    this.pos.x += amount;
  }

  scrollPages(amount: number, _smooth: boolean): void {
    this.pos.x += amount;
  }

  scrollTo(x: number, y: number, _smooth: boolean): void {
    this.pos.x = x;
    this.pos.y = y;
  }

  scrollToTop(_smooth: boolean): void {
    this.pos.y = 0;
  }

  scrollToBottom(_smooth: boolean): void {
    this.pos.y = Infinity;
  }

  scrollToHome(_smooth: boolean): void {
    this.pos.x = 0;
  }

  scrollToEnd(_smooth: boolean): void {
    this.pos.x = Infinity;
  }
}