NUnitAsp and WebForm_PostBackOptions

I've decide to use NUnitAsp on the current project.

After doing some basic visibility checks I tried to call Click() on a LinkButtonTester and I got an error.

I did some digging and found that the new WebForm_PostBackOptions was not being recognized as a postback.

With a bit of hacking around, I've got it working again, the biggest issue was different quotes in the postBackScript from those in the html.

 

The fix:I'm not sure how comprehensive it is, but the basic fix is 2 changes in WebFormTester:

public bool IsPostBack(string candidatePostBackScript)

{

bool postback = (candidatePostBackScript.IndexOf("__doPostBack") != -1)

|| (candidatePostBackScript.IndexOf("WebForm_PostBackOptions") != -1);

return (candidatePostBackScript != null) && postback ;

}

and

public void PostBack(string postBackScript)

{

string postBackPattern1 = @"__doPostBack\('(?<target>.*?)','(?<argument>.*?)'\)";

string postBackPattern2 = @"__doPostBack\(\\'(?<target>.*?)\\',\\'(?<argument>.*?)\\'\)";

string postBackPattern3 = @"WebForm_PostBackOptions\(""(?<target>.*?)"", ""(?<argument>.*?)""";

 

bool succeeded = TryPostBack(postBackScript, postBackPattern1);

if (!succeeded) succeeded = TryPostBack(postBackScript, postBackPattern2);

if (!succeeded) succeeded = TryPostBack(postBackScript, postBackPattern3);

//if (!succeeded) succeeded = TryPostBack(postBackScript, postBackPattern4);

if (!succeeded)

{

throw new ParseException("'" + postBackScript + "' doesn't match expected patterns for postback in " + Description);

}

}

 

No Comments