Skip to content

Releases: serenity-bdd/serenity-core

v1.1.32-rc.1: Release of 1.1.32-rc.1

04 May 19:40
Compare
Choose a tag to compare
- Merge branch 'master' of github.com:serenity-bdd/serenity-core
- Refactoring the Screenplay code - WIP
- Merge pull request #383 from YamStranger/release_notes_2016/04/20_06_53
- updating changelog

v1.1.31: Release of 1.1.31

20 Apr 07:05
Compare
Choose a tag to compare

Pull requests:

  • #358 Rest core updated. Fixed issues with reason in old structure (@YamStranger)

Commits:

  • 117dbf2 feat: serenity rest core updated to return updated configurations, filters, etc. (@YamStranger)

  • 2787384 feat: serenity-rest implemented recording of boyd, content-type, path, method, prepared recoding structure (@YamStranger)

    Now it will be is easy to include in restQuery recording info about cookies, headers, and so on using filtering RestAssured mechanism

  • 2d4719b feat: serenity-rest supported sequences of operations in different steps: (@YamStranger)

    Now it is possible run sequence of rest operations, with restspecification and response shared in one thread:

    class RestSteps {
    [@Ste](https://github.com/Ste)p
    def successfulGet(final String url) {
    given().get("$url/{id}", 1000).then().body("id", Matchers.equalTo(1000));
    }
    [@Ste](https://github.com/Ste)p
    def getById(final String url) {
    rest().get("$url/{id}", 1000);
    }
    [@Ste](https://github.com/Ste)p
    def thenCheckOutcome() {
    then().body("Id", Matchers.anything())
    }
    }
    
  • 52e54a9 feat: implemented wrapping of request specification after multypart request configurations (@YamStranger)

  • 5b6c531 feat: implemented wrapping of request after configuring cookies (@YamStranger)

    Now serenity rest will work correctly after operations like below:

    given().cookies(mapWithCookies).get(url)
    given().cookies("value").get(url)
    given().cookies("value", param).get(url)
    
  • 5bdeda5 feat: serenity-rest implemented wrapping for all requests in SerenityRest class, all covered by tests (@YamStranger)

  • 7c0f58a test: added test to ceheck wrapping after cookie operations (@YamStranger)

  • 7d5f5c8 test: implemented test for wrapping request with configured multipart request (@YamStranger)

  • 8040ade feat: serenity-rest implemented recording of all basic fields, like status-code, body, path, method. Implemented recoding of exceptions. (@YamStranger)

    Now all operations will be recorded, after request executed, in report all fields will appear in same format as send.
    After this update content/body should be matched with additional transformation, because if string contains json/xml it will be reformatted by RestAssured,
    for example for Json it can be:

    ...
    import static net.serenitybdd.rest.staging.JsonConverter.*;
    ...
    assert formatted(query.responseBody) == formatted(body)
    

    Introduced DecomposedContentType class for representation simple content types:
    if in rest assured defined only:

    ANY("*/*"),
    TEXT("text/plain"),
    JSON("application/json", "application/javascript", "text/javascript"),
    XML("application/xml", "text/xml", "application/xhtml+xml"),
    HTML("text/html"),
    URLENC("application/x-www-form-urlencoded"),
    BINARY("application/octet-stream");
    

    not it will be possible define something like that given().contentType("$APPLICATION_JSON") for:

    ANY("*/*"),
    TEXT("text/plain"),
    APPLICATION_JSON("application/json"),
    APPLICATION_JAVASCRIPT("application/javascript"),
    APPLICATION_XML("application/xml"),
    TEST_XML("text/xml"),
    APPLICATION_XHTML_XML("application/xhtml+xml"),
    TEST_JAVASCRIPT("text/javascript"),
    HTML("text/html"),
    URLENC("application/x-www-form-urlencoded"),
    BINARY("application/octet-stream");
    

    as well as find some RestAssured content type by DecomposedContentType or String:

    DecomposedContentType.byString("application/javascript; Charset: UTF-8").contentType()
    
  • 8d3e5c9 feat: serenity rest core decomposed to make possible to use different classes for different purposes. (@YamStranger)

    Now it is possible to execute almost all serenity rest operations using SerenityRest (90+ methods) or use smaller classes:
    RestDefaults (50+ methods)can be used for configuratins only default parameters
    RestRequests (20+ methods)can be used for making requests
    RestUtility (20+ methods)can be used for initialising some default or reusable objects

  • a608efe feat: serenity-rest-assured updated rest core and tests, renamed some classes (@YamStranger)

  • ae9e4a8 feat: serenity-core updated restQuery and reports to include Cookies and headers, changed wrapping of request and response (@YamStranger)

  • b99deb4 test: serenity-rest created test to check how dryRun works for serenity rest (@YamStranger)

  • ca6690e test: serenity-rest implemented test to check if body, contenttype, responce is recorded (@YamStranger)

  • d869ad2 test: serenity-rest implemented tests to check how recording of rest requests and reponses works (@YamStranger)

  • de2dc5e feat: implemented support of DryRun for Serenity Rest (@YamStranger)

  • ebe88bd feat: serenity rest core decomposed to make possible use shaned method invocations for configuring default parameters. (@YamStranger)

  • f5eb645 test: serenity-rest implemented test to check if failed query recorded and it is possible to use assertions (@YamStranger)

v1.1.30

20 Apr 07:04
Compare
Choose a tag to compare

Commits:

  • 08c4823 test: serenity-rest tested to configure base path and pase uri and other base configurations (@YamStranger)

  • 146b1d8 feat: serenity-rest implemented wrapping of request after redirects configuration (@YamStranger)

  • 231052b feat: implemented wrapping after operations with body, content, headers, contentTypes (@YamStranger)

    Now serenity-rest will work correctly with opertions like:

    given().contentType(ContentType.XML).get(url)
    given().contentType(ContentType.XML).get(url)
    given().headers(map).get(url)
    given().header(CONTENT_TYPE.asString(), ContentType.JSON).get(url)
    given().contentType("application/json").content(body).post(url)
    
  • 30105b4 test: created tests to check if HEAD operatin works correctly and return empty body (@YamStranger)

  • 432e5f6 feat: implemented wrapping during executing on request instance operations like when, with, given, and (@YamStranger)

  • 443ca49 test: serenity-rest, added tests for checking https requests and auth params configurations (@YamStranger)

  • 4cb9449 feat: implemented wrapping of request/response after HTTPS and Auth configurations (@YamStranger)

    Now, rest assured will use wrapped request and response after configurations like below:

    given().relaxedHTTPSValidation().get(url)
    when().authentication().basic("login","password").get(url)
    given().authentication().none()
    given().auth().oauth2(token)
    given().authentication().basic("user", "password")
    
  • 5b6b67f feat: wrapped put request, updated wrapping of get request - to use only one function-endpoint (@YamStranger)

  • 5cc45f3 feat: in serenity-rest implemented setting base path, base uri, session id, port, urlEncodingEnabled (@YamStranger)

    To set base paramters next code can be used:

    given().basePath(path).get(url)
    given().baseUri(base).port(port).get(path)
    given().baseUri(base).port(port).get(path)
    given().baseUri(base).basePath("/test").get("log/levels")
    
  • 63d9538 test: added tests to check wrapping response and request and correctness of setting body, content, headers (@YamStranger)

  • 6ed97f3 style: changed request organisation, added tests for get operation (@YamStranger)

  • 794f5af test: serenity-rest, added tests for checking wrapping after redirects configuration (@YamStranger)

  • 7a014ec feat: implemented HEAD, PATCH, DELETE, OPTIONS, POST operations and wrapping of results (@YamStranger)

  • 7f439d2 test: serenity-rest added tests for using chains of given, and, when, with based on request instance (@YamStranger)

  • 81c6d30 feat: impelemented processing and wrapping of result for operations with pathParameter, queryParams, param, params, parameters, formParam (@YamStranger)

  • af19533 feat: implemented processing log operation with rest assurance, and created tests for it (@YamStranger)

  • ca059a5 test: added tests to check wrapping repsponse after PUT, POST, PATCH, DELETE, OPTIONS, HEAD requests (@YamStranger)

  • f1e2cde test: added tests for PUT operations (@YamStranger)

v1.1.29-rc.3: Release of 1.1.29-rc.3

05 Apr 13:56
Compare
Choose a tag to compare

Added basic Microsoft Edge driver support

v1.1.29-rc.2: Release of 1.1.29-rc.2

28 Mar 04:50
Compare
Choose a tag to compare

Pull requests:

  • #367 Updated making screenshots for browsers without such abbility (@YamStranger)
  • #366 Updated making screenshort with died browser - nothing should be taken (@YamStranger)
  • #360 Fixed closing web driver when appium is used, it seems that window handles still does not implemented for Android devices, only for iOS (@YamStranger)
  • #354 fix: Issues with SerenityParameterized test requiring WebDriver (@jordanbragg)
  • #349 Updated scenario data driven steps processing for report - now report will contains steps as for first scenario (@YamStranger)
  • #348 Updated name of test method for Qualifier tests (@YamStranger)
  • #347 Updated processing of @qualifier tag in junit tests with data tables. Now it is possible add short description to steps based on parameters value (@YamStranger)
  • #344 Created gradle build config for smoketests to execute them against latest serenty core (@YamStranger)
  • #339 Updated tests for rest-assurance to use wiremock server instead of petstore. Added TestCase rule - now it is possible initialize test using spock (@YamStranger)
  • #330 Updated store/load of outcomes - serenity.report.encoding property will be used with UTF-8 as default (@cliviu)

Commits:

  • 240b93b feat: added checking if browser alive before taking screenshot or saving page-source (@YamStranger)
  • 4d2029c test: updated tests for rest-assurance to use wiremock server instead of petstore (@YamStranger)
  • 6417437 fix: updated scenario data driven steps processing for report - now report will contains steps as from first scenario (@YamStranger)
  • 6aefe69 test: refactored test for Qualifier (@YamStranger)
  • 71102ac fix: updated processing of @qualifier tag in junit tests with data tables. Now it is possible add short description to steps based on parameters value (@YamStranger)
  • 89e9512 test: added tests to check how taking screenshorts works with died browsers (@YamStranger)
  • a4d6b32 fix: When using SerenityParameterizedRunner tests there was a need to add [@Managed WebDriver in order to see the examples table. This is due to TestClassRunnerForInstanciatedTestCase not overriding initListener](https://github.com/Managed WebDriver in order to see the examples table. This is due to TestClassRunnerForInstanciatedTestCase not overriding initListener)s
  • a505bd9 fix: updated closing web driver when appium is used, it seems that window handles still does not implemented for Android devices, only for iOS (@YamStranger)
  • bf6d91e chore: created gradle build config for smoketests to execute them against latest serenty core (@YamStranger)
  • e6e6651 test: updated name of test method (@YamStranger)

v1.1.29-rc.1: Release of 1.1.29-rc.1

03 Mar 06:10
Compare
Choose a tag to compare

Pull requests:

  • #335 Updated moving files. Now tmp files of reports will be moved only after stream will be closed (@YamStranger)
  • #333 Updated appium java client to 3.3.0 (@YamStranger)
  • #332 Updated processing of names to keep abbreviations of JSON CSV XML (@YamStranger)
  • #331 Updated appium configuration to be compatible with Appium 1.5 - appium.app is no longer required if appium.browserName is supplied (@hazmeister)

Commits:

v1.1.28: Release of 1.1.28

02 Mar 17:33
Compare
Choose a tag to compare

Pull requests:

  • #295 Updated test to check how darkroom works in parallel screenshot taking (@YamStranger)
  • #328 Included exception/assertion message into serenity report (@YamStranger)

Commits:

v1.1.27: Release of 1.1.27

01 Mar 07:20
Compare
Choose a tag to compare

Pull requests:

  • #326 Updated report generation to use temp files. (@YamStranger)
  • #324 Updated method to print exception if it will appear (@YamStranger)
  • #323 Updated loader and reporter to load and generate testoutcomes concurrently with tests, updated gson core to 2.4 (@YamStranger)
  • #319 Updated jbehave to 4.0.5 (@YamStranger)
  • #317 Updated checking of empty string to use StringUtils, for #310 (@YamStranger)
  • #316 Updated contiributing guide - explaned multiline commits and pull requests name convention (@YamStranger)
  • #311 Change log generated for all releases (@YamStranger)
  • #313 Fixed Test Failure stacktrace, now it can contain elements with no fileName (default.ftl), for #312 (@marek5050)

Commits:

v1.1.26: Release of 1.1.26

18 Feb 18:09
Compare
Choose a tag to compare

Commits:

  • 7200f4b Minor bug fix with the Saucelabs video icon (@wakaleo)

    Minor bug fix where the Saucelabs video icon was incorrectly displayed.

  • bc1a284 Refactored some unit tests to check the fix for the Saucelinks link problem properly (@wakaleo)

  • c80004c Made the Cucumber support more robust (@wakaleo)

v1.1.26-rc.3: Release of 1.1.26-rc.3

18 Feb 18:09
Compare
Choose a tag to compare

Commits:

  • 433b732 Allow more elegant waits in the Screenplay module (@wakaleo)

    You can now write code like this:
    jane.should(eventually(seeThat(TheClickerValue.of(clicker), equalTo(10))))
    This will not fail if the matcher cannot be evaluated the first time, but will retry up to a maximum of 'serenity.timouts' seconds (5 by default).

  • e0c2263 Corrected an error in the module names (@wakaleo)