An example application that captures prominent and ugly functionality found on the web

  • By Sauce Labs
  • Last update: Jan 6, 2023
  • Comments: 14

The Internet 0.58.0 (10, February 2020)

=======

An example application that captures prominent and ugly functionality found on the web. Perfect for writing automated acceptance tests against.

Deployed and available at http://the-internet.herokuapp.com.

Available Examples:

Don't see an example you need or think should be here? Contribute!

Contribution Guidelines

tldr;

  1. Fork
  2. Build Something
  3. Submit a Pull Request
  4. High Five!

Getting Started

Install your dependencies:

bundle install

Start the server:

rackup

Load the page you want to see in your browser:

http://localhost:9292/url_path

See Also

  • A Docker Image of the-internet (link)

Github

https://github.com/saucelabs/the-internet

Comments(14)

  • 1

    Challenging DOM: dedicated button not always visible

    Hi, some days ago i found your great website. Nice to see that somebody offers An example application that captures prominent and ugly functionality found on the web. Perfect for writing automated acceptance tests against.

    So i started to build some WETATOR Tests (www.wetator.org). With the 'Challenging DOM' page i have faced a problem: A test assumes the a specific button is available on the page. The challenge usually is to find the correct one. But your page is a bit to random from my point of view. A real application always had a defined state - means a button is available or not. What i like to suggest: Stay with the random placement, coloring etc. of the buttons but take care, that always the same buttons (by label) are available (e.g. 'foo', 'bar', and 'qux'). What do you think?

    RBRi
    
  • 2

    Context Menu example only works in Firefox

    http://the-internet.herokuapp.com/context_menu

    It is currently built using the HTML5 menuitem approach (e.g., like this). Consider making it work for all browsers by leveraging jQuery-contextMenu.

  • 3

    Can you add a .json file to the file download area?

    Can you add a .json file to the file download area?

    I want to be able to trigger a save-as dialog from IE. Anything of content type 'application/whatever' would work I think.

  • 4

    Update frame_bottom.erb

    Updated frame_bottom.erb to have an example of an iFrame within the /frames URI. Please modify to suite the usage. I am only making a suggestion here that is testable by a Selenium script by having a hyperlink that opens a new window.

    Keep in mind that if a Selenium script actually clicks the link to open the new window, the browser instance will end up having an array of 7 windows I think: default, left, right, middle, bottom, iframe, and new_window. Is this correct?

  • 5

    Fix a misspelling in javascript_alerts.erb

    "successfully" was misspelled as "successfuly" in the result label "You successfuly clicked an alert" in the javascript_alerts view. I fixed it.

  • 6

    Adding Cypress tests

    Adding basic cypress e2e tests for the the-internet - Adding a simple Add/Delete button test example but the plan is to add testcases for most of the modules. Thanks for creating this repo!

  • 7

    Bump rack from 1.6.4 to 1.6.12

    Bumps rack from 1.6.4 to 1.6.12.

    Commits
    • de902e4 Merge branch '1-6-sec' into 1-6-stable
    • b7d6546 Bump version
    • d3e2f88 making diff smaller
    • 99a8a87 fix memcache tests on 1.6
    • f2cb48e fix tests on 1.6
    • 7ff635c Introduce a new base class to avoid breaking when upgrading
    • 3232f93 Add a version prefix to the private id to make easier to migrate old values
    • 15da2e5 Fallback to the public id when reading the session in the pool adapter
    • 1a532d1 Also drop the session with the public id when destroying sessions
    • 9fe40c6 Fallback to the legacy id when the new id is not found
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • 8

    Bump rack from 1.6.4 to 1.6.11

    Bumps rack from 1.6.4 to 1.6.11.

    Commits
    • 2bef132 Bumping version for release
    • 97ca63d Whitelist http/https schemes
    • 7b5054e Merge pull request #1296 from tomelm/fix-prefers-plaintext
    • fdcd03a Bump version for release
    • 2293c6a Merge pull request #1249 from mclark/handle-invalid-method-parameters
    • b27dd86 handle failure to upcase invalid strings
    • 274d934 Stick with a passing version of Rubygems and bundler
    • 617aac0 bump version for release
    • dc017e7 Merge pull request #1237 from eileencodes/backport-1137
    • 4d6965a Backport pull request #1137 from unabridged/fix-eof-failure
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • 9

    Unexpected alert dialog

    Change log Unexpected browser alerts have the potential to disable a selenium test suite if not handled appropriately. In my experience I have found any unexpected browser alert will fail all other tests in the suite.

    I would like to add a unexpected alert scenario to this library that:

    1. Upon clicking the link in the unexpected_alert page: a) Opens a new tab that loads the home page. b) Loads an alert message when the parent tab is clicked.

    Other changes

    1. Gemfile Increased Ruby version to 2.4.1.

    Verification

    1. Open terminal, type rackup.
    2. Go to http://127.0.0.1:9292/unexpected_alert.
    3. Click the link in the page. A new tab will open.
    4. Click the parent tab, a browser alert message will appear.
  • 10

    the-internet.herokuapp.com page is unavailable

    the-internet.herokuapp.com page is unavailable

    "An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. "

  • 11

    /value on /dropdown's select element returns empty - but only in Firefox

    Hi there,

    I'm trialling webdriverio against the site, and on the dropdown page when I call getValue() on the element (after selecting the first option), I'm getting empty returned - but only on Firefox. On Chrome and IE it works as expected. I thought it might be a race condition, but a 1sec pause doesn't change the result.

    API call:

    COMMAND
    GET element/0/attribute/value
    
    PARAMETERS
    {}
    
    RESPONSE
    =>
    

    Test: https://github.com/andrew-fowler/webdriverio-theinternet/blob/master/test/specs/dropdown/dropdown.spec.js#L12

    Example Sauce run: https://saucelabs.com/beta/tests/4e608f911d2c4817870135ad76e7b109

    I was assuming that I was doing something wrong, but I'm struggling to see it.

    Thanks, Andrew

  • 12

    Hosting on Heroku or Alternatives?

    Hello there! Since Heroku is ending its free tier support, I would like to know the future of this project on Heroku (since it's right there in the URL). Are there plans to upgrade to a paid Heroku account? Or move to a different PaaS provider? I'm more than happy to help out here with configuration or suggestions. Thanks so much!

  • 13

    Bump i18n from 0.7.0 to 0.9.5

    Bumps i18n from 0.7.0 to 0.9.5.

    Release notes

    Sourced from i18n's releases.

    v0.9.5

    • #404 reported a regression in 0.9.3, which wasn't fixed by 0.9.4. #408 fixes this issue.

    Thanks @​wjordan!

    v0.9.4

    • Fixed a regression with chained backends introduced in v0.9.3 (#402) - #405 - bug report / #407 - PR to fix
    • Optimize Backend::Simple#available_locales - reports are that this is now 4x faster than previously - #406

    v0.9.3

    (For those wondering where v0.9.2 went: I got busy after I pushed the commit for the release, so there was no gem release that day. I am not busy today, so here is v0.9.3 in its stead. This changelog contains changes from v0.9.1 -> v0.9.3)

    • I18n no longer stores translations for unavailable locales. #391.
    • Added the ability to interpolate with arrays #395.
    • Documentation for lambda has been corrected. #396
    • I18n will use oj -- a faster JSON library -- but only if it is available. #398
    • Fixed an issue with translate and default: [false] as an option. #399
    • Fixed an issue with translate with nil and empty keys. #400
    • Fix issue with disabled subtrees and pluralization for KeyValue backend #402

    Thank you to @​stereobooster, @​fatkodima and @​lulalala for the patches that went towards this release. We appreciate your efforts!

    v0.9.1

    • Reverted Hash#slice behaviour introduced with #250 - See #390.
    • Fixed a regression caused by #387, where translations may have returned a not-helpful error message - See #389

    v0.9.0

    • Made Backend::Memoize threadsafe. See #51 and #352.
    • Added a middleware I18n::Middleware that should be used to ensure that i18n config is reset correctly between requests. See #381 and #382.

    v0.8.6

    Fixed a small regression introduced in v0.8.5 when using fallbacks - See #378

    v0.8.5

    • Improved error message for MissingPluralizationKey error - See #371
    • Fixed a thread issue when calling translate when fallbacks were enabled - See #369

    v0.8.4

    Reverted #236 - "Don't allow nil to be submitted as a key to I18n.translate" - See #370

    v0.8.3

    I18n::Gettext#plural_keys will now return a hash from Gettext if no arguments are provided - svenfuchs/i18n#122 Fixed a bug where passing false to translate would not translate that value - svenfuchs/i18n#367

    v0.8.2

    Do not allow nil to be passed to translate - svenfuchs/i18n#236

    ... (truncated)

    Commits
    • 416859a Bump to 0.9.5
    • 5c28de8 Lock Rake to 12.2.x versions
    • 29fe565 Merge pull request #408 from wjordan/enforce_available_locales_false_fix
    • 596a71d store translations for unavailable locales if enforce_available_locales is false
    • 888abcb Bump to 0.9.4
    • ba8b206 Merge pull request #407 from fatkodima/fix-key-value-subtrees
    • 9ddc9f5 Merge pull request #406 from jhawthorn/optimize_available_locales
    • 77c26aa Fix Chained backend with KeyValue
    • 7eb3576 Optimize Backend::Simple#available_locales
    • 7c6ccf4 Bump to 0.9.3
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

  • 14

    Add Subdirectory navigation example

    Often the path continues on past the root directory. This adds a structure of:

    /subdirectories
      /one
      /two
    

    With an index page in each. This is useful for testing navigations within common paths.

    Screen Shot 2021-09-14 at 19 30 48 Screen Shot 2021-09-14 at 19 30 52