@@ -56,38 +56,31 @@ public void shouldReturnANormalWebDriverUntouched() {
56
56
}
57
57
58
58
@ Test
59
- public void shouldLeaveARemoteWebDriverWhichCannotTakeSnapshotsAlone () throws Exception {
59
+ public void shouldAddInterfaceFromCapabilityIfNecessary () {
60
60
DesiredCapabilities caps = new DesiredCapabilities ();
61
+ caps .setCapability ("magic.numbers" , true );
61
62
WebDriver driver = new RemoteWebDriver (new StubExecutor (caps ), caps );
62
63
63
- WebDriver returned = getAugmenter ().augment (driver );
64
- System .out .println ("This is the returned webdriver " + returned );
65
- assertSame (driver , returned );
66
- assertFalse (returned instanceof TakesScreenshot );
67
- }
68
-
69
- @ Test
70
- public void shouldAddTheTakesSnapshotInterfaceIfNecessary () {
71
- DesiredCapabilities caps = new DesiredCapabilities ();
72
- caps .setCapability (CapabilityType .TAKES_SCREENSHOT , true );
73
- WebDriver driver = new RemoteWebDriver (new StubExecutor (caps ), caps );
74
-
75
- WebDriver returned = getAugmenter ().augment (driver );
64
+ BaseAugmenter augmenter = getAugmenter ();
65
+ augmenter .addDriverAugmentation ("magic.numbers" , new AddsMagicNumberHolder ());
66
+ WebDriver returned = augmenter .augment (driver );
76
67
77
68
assertNotSame (driver , returned );
78
69
assertTrue (returned instanceof TakesScreenshot );
79
70
}
80
71
81
72
@ Test
82
- public void shouldNotAddTheTakesSnapshotInterfaceWhenBooleanValueIsFalse () {
73
+ public void shouldNotAddInterfaceWhenBooleanValueForItIsFalse () {
83
74
DesiredCapabilities caps = new DesiredCapabilities ();
84
- caps .setCapability (CapabilityType . TAKES_SCREENSHOT , false );
75
+ caps .setCapability ("magic.numbers" , false );
85
76
WebDriver driver = new RemoteWebDriver (new StubExecutor (caps ), caps );
86
77
87
- WebDriver returned = getAugmenter ().augment (driver );
78
+ BaseAugmenter augmenter = getAugmenter ();
79
+ augmenter .addDriverAugmentation ("magic.numbers" , new AddsMagicNumberHolder ());
80
+ WebDriver returned = augmenter .augment (driver );
88
81
89
82
assertSame (driver , returned );
90
- assertFalse (returned instanceof TakesScreenshot );
83
+ assertFalse (returned instanceof MagicNumberHolder );
91
84
}
92
85
93
86
@ Test
@@ -121,12 +114,14 @@ public Object invoke(ExecuteMethod executeMethod, Object self, Method method,
121
114
@ Test
122
115
public void shouldDelegateUnmatchedMethodCallsToDriverImplementation () {
123
116
DesiredCapabilities caps = new DesiredCapabilities ();
124
- caps .setCapability (CapabilityType . TAKES_SCREENSHOT , true );
117
+ caps .setCapability ("magic.numbers" , true );
125
118
StubExecutor stubExecutor = new StubExecutor (caps );
126
119
stubExecutor .expect (DriverCommand .GET_TITLE , new HashMap <String , Object >(), "Title" );
127
120
WebDriver driver = new RemoteWebDriver (stubExecutor , caps );
128
121
129
- WebDriver returned = getAugmenter ().augment (driver );
122
+ BaseAugmenter augmenter = getAugmenter ();
123
+ augmenter .addDriverAugmentation ("magic.numbers" , new AddsMagicNumberHolder ());
124
+ WebDriver returned = augmenter .augment (driver );
130
125
131
126
assertEquals ("Title" , returned .getTitle ());
132
127
}
@@ -135,12 +130,14 @@ public void shouldDelegateUnmatchedMethodCallsToDriverImplementation() {
135
130
public void proxyShouldNotAppearInStackTraces () {
136
131
final DesiredCapabilities caps = new DesiredCapabilities ();
137
132
// This will force the class to be enhanced
138
- caps .setCapability (CapabilityType . TAKES_SCREENSHOT , true );
133
+ caps .setCapability ("magic.numbers" , true );
139
134
140
135
DetonatingDriver driver = new DetonatingDriver ();
141
136
driver .setCapabilities (caps );
142
137
143
- WebDriver returned = getAugmenter ().augment (driver );
138
+ BaseAugmenter augmenter = getAugmenter ();
139
+ augmenter .addDriverAugmentation ("magic.numbers" , new AddsMagicNumberHolder ());
140
+ WebDriver returned = augmenter .augment (driver );
144
141
145
142
returned .findElement (By .id ("ignored" ));
146
143
}
@@ -222,7 +219,7 @@ public void shouldNotChokeOnFinalFields() {
222
219
public void shouldBeAbleToAugmentMultipleTimes () {
223
220
DesiredCapabilities caps = new DesiredCapabilities ();
224
221
caps .setCapability ("canRotate" , true );
225
- caps .setCapability ("reallyTakesScreenshot " , true );
222
+ caps .setCapability ("magic.numbers " , true );
226
223
227
224
StubExecutor stubExecutor = new StubExecutor (caps );
228
225
stubExecutor .expect (DriverCommand .GET_SCREEN_ORIENTATION ,
@@ -236,15 +233,15 @@ public void shouldBeAbleToAugmentMultipleTimes() {
236
233
WebDriver augmented = augmenter .augment (driver );
237
234
assertNotSame (augmented , driver );
238
235
assertTrue (augmented instanceof Rotatable );
239
- assertFalse (augmented instanceof TakesScreenshot );
236
+ assertFalse (augmented instanceof MagicNumberHolder );
240
237
241
238
augmenter = getAugmenter ();
242
- augmenter .addDriverAugmentation ("reallyTakesScreenshot " , new AddTakesScreenshot ());
239
+ augmenter .addDriverAugmentation ("magic.numbers " , new AddsMagicNumberHolder ());
243
240
244
241
WebDriver augmentedAgain = augmenter .augment (augmented );
245
242
assertNotSame (augmentedAgain , augmented );
246
243
assertTrue (augmentedAgain instanceof Rotatable );
247
- assertTrue (augmentedAgain instanceof TakesScreenshot );
244
+ assertTrue (augmentedAgain instanceof MagicNumberHolder );
248
245
249
246
((Rotatable ) augmentedAgain ).getOrientation (); // Should not throw.
250
247
@@ -355,4 +352,22 @@ public Capabilities getCapabilities() {
355
352
}
356
353
357
354
public abstract BaseAugmenter getAugmenter ();
355
+
356
+ private static class AddsMagicNumberHolder implements AugmenterProvider {
357
+ @ Override
358
+ public Class <?> getDescribedInterface () {
359
+ return MagicNumberHolder .class ;
360
+ }
361
+
362
+ @ Override
363
+ public InterfaceImplementation getImplementation (Object value ) {
364
+ return new InterfaceImplementation () {
365
+ @ Override
366
+ public Object invoke (ExecuteMethod executeMethod , Object self , Method method ,
367
+ Object ... args ) {
368
+ return null ;
369
+ }
370
+ };
371
+ }
372
+ }
358
373
}
0 commit comments