{"action":"closed","number":58,"pull_request":{"url":"https://api.github.com/repos/dpiessens/specbind/pulls/58","id":28022300,"html_url":"https://github.com/dpiessens/specbind/pull/58","diff_url":"https://github.com/dpiessens/specbind/pull/58.diff","patch_url":"https://github.com/dpiessens/specbind/pull/58.patch","issue_url":"https://api.github.com/repos/dpiessens/specbind/issues/58","number":58,"state":"closed","locked":false,"title":"Support token substitution in page navigation","user":{"login":"iterative-it","id":9396346,"avatar_url":"https://avatars.githubusercontent.com/u/9396346?v=3","gravatar_id":"","url":"https://api.github.com/users/iterative-it","html_url":"https://github.com/iterative-it","followers_url":"https://api.github.com/users/iterative-it/followers","following_url":"https://api.github.com/users/iterative-it/following{/other_user}","gists_url":"https://api.github.com/users/iterative-it/gists{/gist_id}","starred_url":"https://api.github.com/users/iterative-it/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iterative-it/subscriptions","organizations_url":"https://api.github.com/users/iterative-it/orgs","repos_url":"https://api.github.com/users/iterative-it/repos","events_url":"https://api.github.com/users/iterative-it/events{/privacy}","received_events_url":"https://api.github.com/users/iterative-it/received_events","type":"User","site_admin":false},"body":"Hello Dan\r\n\r\nMy name is Dave Winchurch and I work with Krister Bone. We use SpecBind extensively in all our acceptance tests. It really helps prevent the standard sprawl of custom bindings you traditionally get with SpecFlow. It's a great tool and I'm please to have been introduced to it!\r\n\r\nWe created a scenario where we find and store an id for a vacancy, apply for that vacancy then return to its page to verify some markup. There was an expectation that we could substitute this id in the PageNavigation.UrlTemplate property for a page, in this case:\r\n\r\n```\r\n//Set token\r\n _tokenManager.SetToken(\"VacancyId\", vacancyId);\r\n\r\n//Page attributes\r\n[PageNavigation(\"/apprenticeship/[0-9]+\", UrlTemplate = \"/apprenticeship/{VacancyId}\")]\r\n\r\n//Scenario\r\nAnd I navigate to the ApprenticeshipDetailsPage page with parameters\r\n\t\t| VacancyId   |\r\n\t\t| {VacancyId} |\r\n```\r\n\r\nHowever this simply replaced \"/apprenticeship/{VacancyId}\" with \"/apprenticeship/{VacancyId}\"\r\n\r\nThis pull request contains the small change I made to support this usage. It passes the tokenManager down a bit further in the stack and relies on the tokenManager.GetToken method's behavior of returning the original string if a value is not found for that key to maintain previous functionality.\r\n\r\nThis is actually my first ever pull request so please accept my apologies if I've done this wrong! I'd also welcome any comments or criticism if the code isn't up to your standards. I'm of course happy to make any changes you request. I'd quite like to contribute more to this project if possible.\r\n\r\nThanks for your time.\r\n\r\nDave","created_at":"2015-01-26T12:10:30Z","updated_at":"2015-01-26T14:27:32Z","closed_at":"2015-01-26T14:27:32Z","merged_at":null,"merge_commit_sha":"14844043a45f85c3ba62bb7104a853d529f3ca81","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dpiessens/specbind/pulls/58/commits","review_comments_url":"https://api.github.com/repos/dpiessens/specbind/pulls/58/comments","review_comment_url":"https://api.github.com/repos/dpiessens/specbind/pulls/comments/{number}","comments_url":"https://api.github.com/repos/dpiessens/specbind/issues/58/comments","statuses_url":"https://api.github.com/repos/dpiessens/specbind/statuses/58bae9bd2b7982ef98b08bf7e7da2112a570c72c","head":{"label":"iterative-it:master","ref":"master","sha":"58bae9bd2b7982ef98b08bf7e7da2112a570c72c","user":{"login":"iterative-it","id":9396346,"avatar_url":"https://avatars.githubusercontent.com/u/9396346?v=3","gravatar_id":"","url":"https://api.github.com/users/iterative-it","html_url":"https://github.com/iterative-it","followers_url":"https://api.github.com/users/iterative-it/followers","following_url":"https://api.github.com/users/iterative-it/following{/other_user}","gists_url":"https://api.github.com/users/iterative-it/gists{/gist_id}","starred_url":"https://api.github.com/users/iterative-it/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iterative-it/subscriptions","organizations_url":"https://api.github.com/users/iterative-it/orgs","repos_url":"https://api.github.com/users/iterative-it/repos","events_url":"https://api.github.com/users/iterative-it/events{/privacy}","received_events_url":"https://api.github.com/users/iterative-it/received_events","type":"User","site_admin":false},"repo":{"id":26267551,"name":"specbind","full_name":"iterative-it/specbind","owner":{"login":"iterative-it","id":9396346,"avatar_url":"https://avatars.githubusercontent.com/u/9396346?v=3","gravatar_id":"","url":"https://api.github.com/users/iterative-it","html_url":"https://github.com/iterative-it","followers_url":"https://api.github.com/users/iterative-it/followers","following_url":"https://api.github.com/users/iterative-it/following{/other_user}","gists_url":"https://api.github.com/users/iterative-it/gists{/gist_id}","starred_url":"https://api.github.com/users/iterative-it/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iterative-it/subscriptions","organizations_url":"https://api.github.com/users/iterative-it/orgs","repos_url":"https://api.github.com/users/iterative-it/repos","events_url":"https://api.github.com/users/iterative-it/events{/privacy}","received_events_url":"https://api.github.com/users/iterative-it/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/iterative-it/specbind","description":"Bridges the SpecFlow and popular UI automation frameworks to simplify acceptance tests.","fork":true,"url":"https://api.github.com/repos/iterative-it/specbind","forks_url":"https://api.github.com/repos/iterative-it/specbind/forks","keys_url":"https://api.github.com/repos/iterative-it/specbind/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iterative-it/specbind/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iterative-it/specbind/teams","hooks_url":"https://api.github.com/repos/iterative-it/specbind/hooks","issue_events_url":"https://api.github.com/repos/iterative-it/specbind/issues/events{/number}","events_url":"https://api.github.com/repos/iterative-it/specbind/events","assignees_url":"https://api.github.com/repos/iterative-it/specbind/assignees{/user}","branches_url":"https://api.github.com/repos/iterative-it/specbind/branches{/branch}","tags_url":"https://api.github.com/repos/iterative-it/specbind/tags","blobs_url":"https://api.github.com/repos/iterative-it/specbind/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iterative-it/specbind/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iterative-it/specbind/git/refs{/sha}","trees_url":"https://api.github.com/repos/iterative-it/specbind/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iterative-it/specbind/statuses/{sha}","languages_url":"https://api.github.com/repos/iterative-it/specbind/languages","stargazers_url":"https://api.github.com/repos/iterative-it/specbind/stargazers","contributors_url":"https://api.github.com/repos/iterative-it/specbind/contributors","subscribers_url":"https://api.github.com/repos/iterative-it/specbind/subscribers","subscription_url":"https://api.github.com/repos/iterative-it/specbind/subscription","commits_url":"https://api.github.com/repos/iterative-it/specbind/commits{/sha}","git_commits_url":"https://api.github.com/repos/iterative-it/specbind/git/commits{/sha}","comments_url":"https://api.github.com/repos/iterative-it/specbind/comments{/number}","issue_comment_url":"https://api.github.com/repos/iterative-it/specbind/issues/comments/{number}","contents_url":"https://api.github.com/repos/iterative-it/specbind/contents/{+path}","compare_url":"https://api.github.com/repos/iterative-it/specbind/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iterative-it/specbind/merges","archive_url":"https://api.github.com/repos/iterative-it/specbind/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iterative-it/specbind/downloads","issues_url":"https://api.github.com/repos/iterative-it/specbind/issues{/number}","pulls_url":"https://api.github.com/repos/iterative-it/specbind/pulls{/number}","milestones_url":"https://api.github.com/repos/iterative-it/specbind/milestones{/number}","notifications_url":"https://api.github.com/repos/iterative-it/specbind/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iterative-it/specbind/labels{/name}","releases_url":"https://api.github.com/repos/iterative-it/specbind/releases{/id}","created_at":"2014-11-06T11:43:53Z","updated_at":"2015-01-26T13:28:14Z","pushed_at":"2015-01-26T13:28:14Z","git_url":"git://github.com/iterative-it/specbind.git","ssh_url":"git@github.com:iterative-it/specbind.git","clone_url":"https://github.com/iterative-it/specbind.git","svn_url":"https://github.com/iterative-it/specbind","homepage":null,"size":4056,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dpiessens:master","ref":"master","sha":"45742a9a275f1d462dccedc5faa887260afc37e2","user":{"login":"dpiessens","id":64921,"avatar_url":"https://avatars.githubusercontent.com/u/64921?v=3","gravatar_id":"","url":"https://api.github.com/users/dpiessens","html_url":"https://github.com/dpiessens","followers_url":"https://api.github.com/users/dpiessens/followers","following_url":"https://api.github.com/users/dpiessens/following{/other_user}","gists_url":"https://api.github.com/users/dpiessens/gists{/gist_id}","starred_url":"https://api.github.com/users/dpiessens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpiessens/subscriptions","organizations_url":"https://api.github.com/users/dpiessens/orgs","repos_url":"https://api.github.com/users/dpiessens/repos","events_url":"https://api.github.com/users/dpiessens/events{/privacy}","received_events_url":"https://api.github.com/users/dpiessens/received_events","type":"User","site_admin":false},"repo":{"id":8913716,"name":"specbind","full_name":"dpiessens/specbind","owner":{"login":"dpiessens","id":64921,"avatar_url":"https://avatars.githubusercontent.com/u/64921?v=3","gravatar_id":"","url":"https://api.github.com/users/dpiessens","html_url":"https://github.com/dpiessens","followers_url":"https://api.github.com/users/dpiessens/followers","following_url":"https://api.github.com/users/dpiessens/following{/other_user}","gists_url":"https://api.github.com/users/dpiessens/gists{/gist_id}","starred_url":"https://api.github.com/users/dpiessens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpiessens/subscriptions","organizations_url":"https://api.github.com/users/dpiessens/orgs","repos_url":"https://api.github.com/users/dpiessens/repos","events_url":"https://api.github.com/users/dpiessens/events{/privacy}","received_events_url":"https://api.github.com/users/dpiessens/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dpiessens/specbind","description":"Bridges the SpecFlow and popular UI automation frameworks to simplify acceptance tests.","fork":false,"url":"https://api.github.com/repos/dpiessens/specbind","forks_url":"https://api.github.com/repos/dpiessens/specbind/forks","keys_url":"https://api.github.com/repos/dpiessens/specbind/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dpiessens/specbind/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dpiessens/specbind/teams","hooks_url":"https://api.github.com/repos/dpiessens/specbind/hooks","issue_events_url":"https://api.github.com/repos/dpiessens/specbind/issues/events{/number}","events_url":"https://api.github.com/repos/dpiessens/specbind/events","assignees_url":"https://api.github.com/repos/dpiessens/specbind/assignees{/user}","branches_url":"https://api.github.com/repos/dpiessens/specbind/branches{/branch}","tags_url":"https://api.github.com/repos/dpiessens/specbind/tags","blobs_url":"https://api.github.com/repos/dpiessens/specbind/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dpiessens/specbind/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dpiessens/specbind/git/refs{/sha}","trees_url":"https://api.github.com/repos/dpiessens/specbind/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dpiessens/specbind/statuses/{sha}","languages_url":"https://api.github.com/repos/dpiessens/specbind/languages","stargazers_url":"https://api.github.com/repos/dpiessens/specbind/stargazers","contributors_url":"https://api.github.com/repos/dpiessens/specbind/contributors","subscribers_url":"https://api.github.com/repos/dpiessens/specbind/subscribers","subscription_url":"https://api.github.com/repos/dpiessens/specbind/subscription","commits_url":"https://api.github.com/repos/dpiessens/specbind/commits{/sha}","git_commits_url":"https://api.github.com/repos/dpiessens/specbind/git/commits{/sha}","comments_url":"https://api.github.com/repos/dpiessens/specbind/comments{/number}","issue_comment_url":"https://api.github.com/repos/dpiessens/specbind/issues/comments/{number}","contents_url":"https://api.github.com/repos/dpiessens/specbind/contents/{+path}","compare_url":"https://api.github.com/repos/dpiessens/specbind/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dpiessens/specbind/merges","archive_url":"https://api.github.com/repos/dpiessens/specbind/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dpiessens/specbind/downloads","issues_url":"https://api.github.com/repos/dpiessens/specbind/issues{/number}","pulls_url":"https://api.github.com/repos/dpiessens/specbind/pulls{/number}","milestones_url":"https://api.github.com/repos/dpiessens/specbind/milestones{/number}","notifications_url":"https://api.github.com/repos/dpiessens/specbind/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dpiessens/specbind/labels{/name}","releases_url":"https://api.github.com/repos/dpiessens/specbind/releases{/id}","created_at":"2013-03-20T20:30:50Z","updated_at":"2014-12-23T15:59:28Z","pushed_at":"2014-12-23T15:59:27Z","git_url":"git://github.com/dpiessens/specbind.git","ssh_url":"git@github.com:dpiessens/specbind.git","clone_url":"https://github.com/dpiessens/specbind.git","svn_url":"https://github.com/dpiessens/specbind","homepage":null,"size":4802,"stargazers_count":17,"watchers_count":17,"language":"C#","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":5,"mirror_url":null,"open_issues_count":3,"forks":5,"open_issues":3,"watchers":17,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dpiessens/specbind/pulls/58"},"html":{"href":"https://github.com/dpiessens/specbind/pull/58"},"issue":{"href":"https://api.github.com/repos/dpiessens/specbind/issues/58"},"comments":{"href":"https://api.github.com/repos/dpiessens/specbind/issues/58/comments"},"review_comments":{"href":"https://api.github.com/repos/dpiessens/specbind/pulls/58/comments"},"review_comment":{"href":"https://api.github.com/repos/dpiessens/specbind/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/dpiessens/specbind/pulls/58/commits"},"statuses":{"href":"https://api.github.com/repos/dpiessens/specbind/statuses/58bae9bd2b7982ef98b08bf7e7da2112a570c72c"}},"merged":false,"mergeable":true,"mergeable_state":"clean","merged_by":null,"comments":1,"review_comments":0,"commits":2,"additions":35,"deletions":14,"changed_files":2}}