6
6
import com .aerokube .lightning .model .MoonOptions ;
7
7
8
8
import javax .annotation .Nonnull ;
9
- import java .nio .file .Path ;
10
9
import java .time .Duration ;
11
10
12
- import static com .aerokube .lightning .extensions .Selenoid .rootCAEnv ;
13
11
import static com .aerokube .lightning .model .Capabilities .JSON_PROPERTY_MOON_COLON_OPTIONS ;
14
12
import static com .aerokube .lightning .model .MoonMobileDevice .OrientationEnum .LANDSCAPE ;
15
13
16
- public class Moon extends ExtensionCapabilities implements MobileDevice {
14
+ public class MoonCapabilities extends ExtensionCapabilities implements MobileDevice {
17
15
18
16
private final MoonOptions moonOptions ;
19
17
private final MoonMobileDevice moonMobileDevice ;
20
18
21
- public Moon (@ Nonnull Capabilities capabilities ) {
19
+ public MoonCapabilities (@ Nonnull Capabilities capabilities ) {
22
20
super (capabilities );
23
21
this .moonOptions = new MoonOptions ();
24
22
this .moonMobileDevice = new MoonMobileDevice ();
25
23
capabilities .capability (JSON_PROPERTY_MOON_COLON_OPTIONS , moonOptions );
26
24
}
27
25
28
26
@ Nonnull
29
- public Moon enableVNC () {
30
- moonOptions .setEnableVNC (true );
27
+ public MoonCapabilities enableVideo () {
28
+ moonOptions .enableVideo (true );
31
29
return this ;
32
30
}
33
31
34
32
@ Nonnull
35
- public Moon environmentVariable (@ Nonnull String key , @ Nonnull String value ) {
33
+ public MoonCapabilities environmentVariable (@ Nonnull String key , @ Nonnull String value ) {
36
34
moonOptions .addEnvItem (String .format ("%s=%s" , key , value ));
37
35
return this ;
38
36
}
39
37
40
38
@ Nonnull
41
- public Moon logName (@ Nonnull String name ) {
42
- moonOptions .setLogName ( name );
39
+ public MoonCapabilities label (@ Nonnull String key , @ Nonnull String value ) {
40
+ moonOptions .putLabelsItem ( key , value );
43
41
return this ;
44
42
}
45
43
46
44
@ Nonnull
47
- public Moon name (@ Nonnull String name ) {
45
+ public MoonCapabilities name (@ Nonnull String name ) {
48
46
moonOptions .setName (name );
49
47
return this ;
50
48
}
51
49
52
50
@ Nonnull
53
- public Moon screenResolution (@ Nonnull String screenResolution ) {
51
+ public MoonCapabilities nameserver (@ Nonnull String nameserver ) {
52
+ moonOptions .addNameserversItem (nameserver );
53
+ return this ;
54
+ }
55
+
56
+ @ Nonnull
57
+ public MoonCapabilities host (@ Nonnull String domainName , @ Nonnull String ipAddress ) {
58
+ moonOptions .addHostsItem (String .format ("%s:%s" , domainName , ipAddress ));
59
+ return this ;
60
+ }
61
+
62
+ @ Nonnull
63
+ public MoonCapabilities screenResolution (@ Nonnull String screenResolution ) {
54
64
moonOptions .setScreenResolution (screenResolution );
55
65
return this ;
56
66
}
57
67
58
68
@ Nonnull
59
- public Moon sessionTimeout (@ Nonnull Duration duration ) {
69
+ public MoonCapabilities sessionTimeout (@ Nonnull Duration duration ) {
60
70
moonOptions .setSessionTimeout (ExtensionCapabilities .golangDuration (duration ));
61
71
return this ;
62
72
}
63
73
64
74
@ Nonnull
65
- public Moon s3KeyPattern (@ Nonnull String pattern ) {
66
- moonOptions .setS3KeyPattern (pattern );
75
+ public MoonCapabilities pattern (@ Nonnull String pattern ) {
76
+ moonOptions .setPattern (pattern );
67
77
return this ;
68
78
}
69
79
70
80
@ Nonnull
71
- public Moon timeZone (@ Nonnull String timeZone ) {
72
- moonOptions .setTimeZone (timeZone );
73
- return this ;
81
+ public MoonCapabilities timeZone (@ Nonnull String timeZone ) {
82
+ return environmentVariable ("TZ" , timeZone );
74
83
}
75
84
76
85
@ Nonnull
77
- public Moon videoFrameRate (int frameRate ) {
86
+ public MoonCapabilities videoFrameRate (int frameRate ) {
78
87
moonOptions .setVideoFrameRate ((long ) frameRate );
79
88
return this ;
80
89
}
81
90
82
91
@ Nonnull
83
- public Moon videoName (@ Nonnull String videoName ) {
92
+ public MoonCapabilities videoName (@ Nonnull String videoName ) {
84
93
moonOptions .setVideoName (videoName );
85
94
return this ;
86
95
}
87
96
88
97
@ Nonnull
89
- public Moon videoScreenSize (@ Nonnull String videoScreenSize ) {
98
+ public MoonCapabilities videoScreenSize (@ Nonnull String videoScreenSize ) {
90
99
moonOptions .setVideoScreenSize (videoScreenSize );
91
100
return this ;
92
101
}
@@ -109,10 +118,4 @@ public MobileDevice landscape() {
109
118
return this ;
110
119
}
111
120
112
- @ Nonnull
113
- public Moon rootCertificationAuthority (@ Nonnull Path certificate ) {
114
- moonOptions .addEnvItem (rootCAEnv (certificate ));
115
- return this ;
116
- }
117
-
118
121
}
0 commit comments