@@ -39,7 +39,7 @@ public void ShouldWaitUntilBrowserHasClosedProperly()
3939
4040 driver . Url = formsPage ;
4141 IWebElement textarea = driver . FindElement ( By . Id ( "withText" ) ) ;
42- string expectedText = "I like cheese" + System . Environment . NewLine
42+ string expectedText = "I like cheese" + System . Environment . NewLine
4343 + System . Environment . NewLine + "It's really nice" ;
4444 textarea . Clear ( ) ;
4545 textarea . SendKeys ( expectedText ) ;
@@ -252,6 +252,108 @@ public void ShouldAllowUserToSuccessfullyOverrideTheHomePage()
252252 }
253253 }
254254
255+ [ Test ]
256+ public void ShouldInstallAndUninstallXpiAddon ( )
257+ {
258+ FirefoxDriver firefoxDriver = driver as FirefoxDriver ;
259+
260+ string extension = GetPath ( "webextensions-selenium-example.xpi" ) ;
261+ string id = firefoxDriver . InstallAddOnFromFile ( extension ) ;
262+
263+ driver . Url = blankPage ;
264+
265+ IWebElement injected = firefoxDriver . FindElement ( By . Id ( "webextensions-selenium-example" ) ) ;
266+ Assert . That ( injected . Text , Is . EqualTo ( "Content injected by webextensions-selenium-example" ) ) ;
267+
268+ firefoxDriver . UninstallAddOn ( id ) ;
269+
270+ driver . Navigate ( ) . Refresh ( ) ;
271+ Assert . That ( driver . FindElements ( By . Id ( "webextensions-selenium-example" ) ) . Count , Is . Zero ) ;
272+ }
273+
274+ [ Test ]
275+ public void ShouldInstallAndUninstallUnSignedZipAddon ( )
276+ {
277+ FirefoxDriver firefoxDriver = driver as FirefoxDriver ;
278+
279+ string extension = GetPath ( "webextensions-selenium-example-unsigned.zip" ) ;
280+ string id = firefoxDriver . InstallAddOnFromFile ( extension , true ) ;
281+
282+ driver . Url = blankPage ;
283+
284+ IWebElement injected = firefoxDriver . FindElement ( By . Id ( "webextensions-selenium-example" ) ) ;
285+ Assert . That ( injected . Text , Is . EqualTo ( "Content injected by webextensions-selenium-example" ) ) ;
286+
287+ firefoxDriver . UninstallAddOn ( id ) ;
288+
289+ driver . Navigate ( ) . Refresh ( ) ;
290+ Assert . That ( driver . FindElements ( By . Id ( "webextensions-selenium-example" ) ) . Count , Is . Zero ) ;
291+ }
292+
293+ [ Test ]
294+ public void ShouldInstallAndUninstallSignedZipAddon ( )
295+ {
296+ FirefoxDriver firefoxDriver = driver as FirefoxDriver ;
297+
298+ string extension = GetPath ( "webextensions-selenium-example.zip" ) ;
299+ string id = firefoxDriver . InstallAddOnFromFile ( extension ) ;
300+
301+ driver . Url = blankPage ;
302+
303+ IWebElement injected = firefoxDriver . FindElement ( By . Id ( "webextensions-selenium-example" ) ) ;
304+ Assert . That ( injected . Text , Is . EqualTo ( "Content injected by webextensions-selenium-example" ) ) ;
305+
306+ firefoxDriver . UninstallAddOn ( id ) ;
307+
308+ driver . Navigate ( ) . Refresh ( ) ;
309+ Assert . That ( driver . FindElements ( By . Id ( "webextensions-selenium-example" ) ) . Count , Is . Zero ) ;
310+ }
311+
312+ [ Test ]
313+ public void ShouldInstallAndUninstallSignedDirAddon ( )
314+ {
315+ FirefoxDriver firefoxDriver = driver as FirefoxDriver ;
316+
317+ string extension = GetPath ( "webextensions-selenium-example-signed" ) ;
318+ string id = firefoxDriver . InstallAddOnFromDirectory ( extension ) ;
319+
320+ driver . Url = blankPage ;
321+
322+ IWebElement injected = firefoxDriver . FindElement ( By . Id ( "webextensions-selenium-example" ) ) ;
323+ Assert . That ( injected . Text , Is . EqualTo ( "Content injected by webextensions-selenium-example" ) ) ;
324+
325+ firefoxDriver . UninstallAddOn ( id ) ;
326+
327+ driver . Navigate ( ) . Refresh ( ) ;
328+ Assert . That ( driver . FindElements ( By . Id ( "webextensions-selenium-example" ) ) . Count , Is . Zero ) ;
329+ }
330+
331+ [ Test ]
332+ public void ShouldInstallAndUninstallUnSignedDirAddon ( )
333+ {
334+ FirefoxDriver firefoxDriver = driver as FirefoxDriver ;
335+
336+ string extension = GetPath ( "webextensions-selenium-example" ) ;
337+ string id = firefoxDriver . InstallAddOnFromDirectory ( extension , true ) ;
338+
339+ driver . Url = blankPage ;
340+
341+ IWebElement injected = firefoxDriver . FindElement ( By . Id ( "webextensions-selenium-example" ) ) ;
342+ Assert . That ( injected . Text , Is . EqualTo ( "Content injected by webextensions-selenium-example" ) ) ;
343+
344+ firefoxDriver . UninstallAddOn ( id ) ;
345+
346+ driver . Navigate ( ) . Refresh ( ) ;
347+ Assert . That ( driver . FindElements ( By . Id ( "webextensions-selenium-example" ) ) . Count , Is . Zero ) ;
348+ }
349+
350+ private string GetPath ( string name )
351+ {
352+ string sCurrentDirectory = AppDomain . CurrentDomain . BaseDirectory ;
353+ string sFile = Path . Combine ( sCurrentDirectory , "../../../../common/extensions/" + name ) ;
354+ return Path . GetFullPath ( sFile ) ;
355+ }
356+
255357 private static bool PlatformHasNativeEvents ( )
256358 {
257359 return true ;
0 commit comments