splashblot / dronedb

Location Intelligence & Data Visualization tool
http://carto.com
BSD 3-Clause "New" or "Revised" License
0 stars 0 forks source link

Fix test at rails #85

Closed ivanprado closed 6 years ago

ivanprado commented 6 years ago

I was able to run rails unit tests. ¡Only 18 are broken!

To execute them I had to:

Try to fix them and start to include tests when new functionality is included.

  1) CartoDB::ImageMetadata#parse_identify should extract svg dimensions
     Failure/Error: metadata.width.should eq 645

       expected: 645
            got: 0

       (compared using ==)
     # ./spec/lib/image_metadata_spec.rb:70:in `block (3 levels) in <top (required)>'

  2) CartoDB::ImageMetadata#parse_identify should extract svg dimensions in files without XML header if forced as svg
     Failure/Error: metadata.width.should eq 11

       expected: 11
            got: 0

       (compared using ==)
     # ./spec/lib/image_metadata_spec.rb:77:in `block (3 levels) in <top (required)>'

  3) Map viewer role support #validations #options requires dashboard_menu to be present
     Failure/Error: @map.valid?.should be_false
       expected: false value
            got: true
     # ./spec/models/map_spec.rb:117:in `block (5 levels) in <top (required)>'

  4) Map viewer role support #validations #options requires layer_selector to be present
     Failure/Error: @map.valid?.should be_false
       expected: false value
            got: true
     # ./spec/models/map_spec.rb:128:in `block (5 levels) in <top (required)>'

  5) Map viewer role support #validations #options rejects incomplete options
     Failure/Error: @map.errors[:options][0].should include('dashboard_menu')
       expected "The property '#/' contains additional properties [\"spam\"] outside of the schema when none are allowed in schema 1ebd259a-9ad3-5bb3-a854-fd9a23c75534#" to include "dashboard_menu"
     # ./spec/models/map_spec.rb:148:in `block (5 levels) in <top (required)>'

  6) Table with Carto::UserTable model behaves like table service post import processing tests should return geometry types when guessing is enabled
     Failure/Error: table.geometry_types.should == ['ST_Point']
       expected: ["ST_Point"]
            got: [] (using ==)
     Shared Example Group: "table service" called from ./spec/models/table_spec.rb:2491
     # ./spec/models/table_spec.rb:1459:in `block (4 levels) in <top (required)>'

  7) refactored behaviour behaves like user models #basemaps shows all basemaps for Google Maps users
     Failure/Error: basemaps.keys.sort.should eq ['CARTO', 'Stamen']

       expected: ["CARTO", "Stamen"]
            got: ["CARTO", "Here", "Stamen"]

       (compared using ==)
     Shared Example Group: "user models" called from ./spec/models/user_spec.rb:19
     # ./spec/models/user_shared_examples.rb:778:in `block (3 levels) in <top (required)>'

  8) refactored behaviour behaves like user models #default_basemap defaults to Google for Google Maps users, Positron for others
     Failure/Error: user.default_basemap['name'].should eq 'Positron'

       expected: "Positron"
            got: "Here Day"

       (compared using ==)
     Shared Example Group: "user models" called from ./spec/models/user_spec.rb:19
     # ./spec/models/user_shared_examples.rb:790:in `block (3 levels) in <top (required)>'

  9) CartoDB::Visualization::TableBlender#blend multiple tables sets increasing order for data layers and keep tiled first and last
     Failure/Error: map.layers.count.should eq 4

       expected: 4
            got: 3

       (compared using ==)
     # ./spec/models/visualization/table_blender_spec.rb:44:in `block (4 levels) in <top (required)>'

  10) ApplicationController#http_header_authentication autocreation disabled redirects to login for unknown emails
     Failure/Error: response.body.should include("Login")
       expected "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  <title>TILEO</title>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <meta name=\"description\" content=\"Create dynamic maps, analyze and build location-aware and geospatial applications with your data using the power of PostGIS in the cloud.\">\n  <link href=\"/assets/4.9.268/favicons/favicon.ico?1510139890\" rel=\"shortcut icon\" type=\"image/vnd.microsoft.icon\" />\n  <link href=\"/assets/4.9.268/stylesheets/sessions.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n  \n  \n</head>\n<body class=\"frontend\">\n  \n\n<div class=\"CDB-Text Sessions-navy\" style=\"\">\n  <div class=\"Sessions-content\">\n    <div class=\"Sessions-inner\">\n      <div class=\"Sessions-notloggedin is-active\">\n        <div class=\"u-inner\">\n          <div class=\"Sessions-left\">\n            <div class=\"Sessions-logoContainer\">\n              <picture class=\"Navbar-brand\">\n                    <img alt=\"Tileo\" src=\"/assets/4.9.268/images/tileo/logo/tileo-white_logo_combination.svg\" />\n              </picture>\n            </div>\n\n            <div class=\"Sessions-form\">\n              <form accept-charset=\"UTF-8\" action=\"/sessions/create\" class=\"js-Loading-form\" method=\"post\"><div style=\"margin:0;padding:0;display:inline\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" /></div>\n\n                  <input type=\"hidden\" value=\"\" id=\"google_access_token\" name=\"google_access_token\" />\n                  <input type=\"hidden\" value=\"0\" id=\"google_access_filled\" name=\"google_access_filled\" />\n\n\n                  <div class=\"Sessions-field\">\n                    <input class=\"CDB-Size-medium Sessions-navy-input topBorderRadius\" id=\"email\" name=\"email\" placeholder=\"Email o usuario\" title=\"Email o usuario\" type=\"text\" value=\"www.example.com\" />\n\n                  </div>\n\n                  <div class=\"Sessions-field\">\n                    <input class=\"CDB-Size-medium Sessions-navy-input bottomBorderRadius\" id=\"password\" name=\"password\" placeholder=\"Contraseña\" type=\"password\" value=\"\" />\n\n\n                  </div>\n\n                  <div class=\"Sessions-field\">\n                    <p>\n                      <button type=\"submit\" class=\"Sessions-submitButton js-Sessions-button js-Loading\">\n                        <span class=\"js-Loading-text\">Entrar</span>\n                        <span class=\"js-Loading-anim\" style=\"display: none;\">\n                          <span class=\"Loading-item\">\n                            <span class=\"Loading-itemInner Loading-itemInner--01\"></span>\n                          </span>\n\n                          <span class=\"Loading-item\">\n                            <span class=\"Loading-itemInner Loading-itemInner--02\"></span>\n                          </span>\n\n                          <span class=\"Loading-item\">\n                            <span class=\"Loading-itemInner Loading-itemInner--03\"></span>\n                          </span>\n                        </span>\n                      </button>\n                    </p>\n                  </div>\n\n</form>              <div class=\"Sessions-field Sessions-oauthContainer\">\n\n              </div>\n\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"Sessions-loggedin\">\n        <div class=\"Spinner\"></div>\n      </div>\n    </div>\n  </div>\n</div>\n\n  \n    <script src=\"/assets/4.9.268/javascripts/cdb.js\" type=\"text/javascript\"></script>\n<script src=\"/assets/4.9.268/javascripts/sessions.js\" type=\"text/javascript\"></script>\n\n  \n</body>\n</html>\n" to include "Login"
       Diff:
       @@ -1,2 +1,91 @@
       -Login
       +<!DOCTYPE html>
       +<html>
       +<head>
       +  <meta charset="utf-8">
       +  <meta http-equiv="X-UA-Compatible" content="IE=edge">
       +  <title>TILEO</title>
       +  <meta name="viewport" content="width=device-width, initial-scale=1">
       +  <meta name="description" content="Create dynamic maps, analyze and build location-aware and geospatial applications with your data using the power of PostGIS in the cloud.">
       +  <link href="/assets/4.9.268/favicons/favicon.ico?1510139890" rel="shortcut icon" type="image/vnd.microsoft.icon" />
       +  <link href="/assets/4.9.268/stylesheets/sessions.css" media="screen" rel="stylesheet" type="text/css" />
       +  
       +  
       +</head>
       +<body class="frontend">
       +  
       +
       +<div class="CDB-Text Sessions-navy" style="">
       +  <div class="Sessions-content">
       +    <div class="Sessions-inner">
       +      <div class="Sessions-notloggedin is-active">
       +        <div class="u-inner">
       +          <div class="Sessions-left">
       +            <div class="Sessions-logoContainer">
       +              <picture class="Navbar-brand">
       +                    <img alt="Tileo" src="/assets/4.9.268/images/tileo/logo/tileo-white_logo_combination.svg" />
       +              </picture>
       +            </div>
       +
       +            <div class="Sessions-form">
       +              <form accept-charset="UTF-8" action="/sessions/create" class="js-Loading-form" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /></div>
       +
       +                  <input type="hidden" value="" id="google_access_token" name="google_access_token" />
       +                  <input type="hidden" value="0" id="google_access_filled" name="google_access_filled" />
       +
       +
       +                  <div class="Sessions-field">
       +                    <input class="CDB-Size-medium Sessions-navy-input topBorderRadius" id="email" name="email" placeholder="Email o usuario" title="Email o usuario" type="text" value="www.example.com" />
       +
       +                  </div>
       +
       +                  <div class="Sessions-field">
       +                    <input class="CDB-Size-medium Sessions-navy-input bottomBorderRadius" id="password" name="password" placeholder="Contraseña" type="password" value="" />
       +
       +
       +                  </div>
       +
       +                  <div class="Sessions-field">
       +                    <p>
       +                      <button type="submit" class="Sessions-submitButton js-Sessions-button js-Loading">
       +                        <span class="js-Loading-text">Entrar</span>
       +                        <span class="js-Loading-anim" style="display: none;">
       +                          <span class="Loading-item">
       +                            <span class="Loading-itemInner Loading-itemInner--01"></span>
       +                          </span>
       +
       +                          <span class="Loading-item">
       +                            <span class="Loading-itemInner Loading-itemInner--02"></span>
       +                          </span>
       +
       +                          <span class="Loading-item">
       +                            <span class="Loading-itemInner Loading-itemInner--03"></span>
       +                          </span>
       +                        </span>
       +                      </button>
       +                    </p>
       +                  </div>
       +
       +</form>              <div class="Sessions-field Sessions-oauthContainer">
       +
       +              </div>
       +
       +            </div>
       +          </div>
       +        </div>
       +      </div>
       +
       +      <div class="Sessions-loggedin">
       +        <div class="Spinner"></div>
       +      </div>
       +    </div>
       +  </div>
       +</div>
       +
       +  
       +    <script src="/assets/4.9.268/javascripts/cdb.js" type="text/javascript"></script>
       +<script src="/assets/4.9.268/javascripts/sessions.js" type="text/javascript"></script>
       +
       +  
       +</body>
       +</html>

     # ./spec/requests/application_controller_spec.rb:166:in `block (5 levels) in <top (required)>'

  11) Carto::Builder::Public::EmbedsController#show private visualizations cannot be embedded
     Failure/Error: response.body.include?('Embed error | CARTO').should be true

       expected #<TrueClass:20> => true
            got #<FalseClass:0> => false

       Compared using equal?, which compares object identity,
       but expected and actual are not the same object. Use
       'actual.should eq(expected)' if you don't care about
       object identity in this example.
     # ./spec/requests/carto/builder/public/embeds_controller_spec.rb:222:in `block (4 levels) in <top (required)>'

  12) Carto::Builder::Public::EmbedsController#show in organizations does not embed private visualizations
     Failure/Error: response.body.should include 'Embed error | CARTO'
       expected "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Embed error | TILEO</title>\n    <link href=\"/assets/4.9.268/stylesheets/password_protected.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n  </head>\n\n  <body class='PublicPage-body PublicPage-background--grey'>\n    <div class='PublicPage-centerContainer'>\n      <div class='PublicPage-container'>\n        <div class='PublicPage-protectedEmbed-iconContainer'>\n          <svg version=\"1.1\" id=\"Outline_Icons\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"50px\" height=\"50px\" viewBox=\"0 0 24 24\">\n            <g id=\"Editor-private-embed\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n            \t<path fill='#27353C' d=\"M17.479,11.035c-3.584,0-6.5,2.916-6.5,6.5s2.916,6.5,6.5,6.5s6.5-2.916,6.5-6.5S21.062,11.035,17.479,11.035z\n            \t\t M17.479,23.035c-3.033,0-5.5-2.467-5.5-5.5s2.467-5.5,5.5-5.5s5.5,2.467,5.5,5.5S20.511,23.035,17.479,23.035z\"/>\n            \t<circle fill='#27353C' cx=\"17.479\" cy=\"20.802\" r=\"0.593\"/>\n            \t<path fill='#27353C' d=\"M17.479,13.484c-1.256,0-2.277,1.022-2.277,2.278c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5\n            \t\tc0-0.705,0.573-1.278,1.277-1.278c0.706,0,1.279,0.573,1.279,1.278c0,0.705-0.574,1.278-1.279,1.278c-0.276,0-0.5,0.224-0.5,0.5\n            \t\tv1.779c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5v-1.334c1.017-0.229,1.779-1.138,1.779-2.223\n            \t\tC19.758,14.506,18.735,13.484,17.479,13.484z\"/>\n            \t<path fill='#27353C' d=\"M1,1h10v4.5C11,5.776,11.224,6,11.5,6H16v4h1V5.5c0-0.067-0.014-0.132-0.039-0.192c-0.025-0.061-0.062-0.116-0.108-0.162\n            \t\tl-4.999-4.999c-0.046-0.046-0.101-0.083-0.162-0.108C11.632,0.014,11.567,0,11.5,0h-11C0.224,0,0,0.224,0,0.5v21\n            \t\tC0,21.776,0.224,22,0.5,22H11v-1H1V1z M12,1.707L15.293,5H12V1.707z\"/>\n            </g>\n          </svg>\n        </div>\n\n        <p class='CDB-Text CDB-Size-large'>Looks like this map is set as private or no longer exists</p>\n      </div>\n    </div>\n\n    \n    <script type=\"text/javascript\">\n  var hubspot_token = \"3221573\";\n  var hubspot_ids = {\"exported_map\":\"000000929938\",\"import_failed\":\"000000929915\",\"geocoding_failed\":\"000000929916\",\"import_success\":\"000000929917\",\"geocoding_success\":\"000000929918\",\"published_visualization\":\"000000929919\",\"visited_dashboard\":\"0000009299120\",\"connect_dataset\":\"000000929921\",\"create_map\":\"000000929922\",\"export_table\":\"000000929923\",\"select_wms\":\"000000929924\",\"color_basemap\":\"000000929925\",\"pattern_basemap\":\"000000929926\",\"geocoding\":\"000000929927\",\"visual_merge\":\"000000929928\",\"common_data\":\"000000929929\",\"cartocss_manually\":\"000000929930\",\"wizard\":\"000000929931\",\"filter\":\"000000929932\",\"query\":\"000000929933\",\"modified_style_form\":\"000000929934\",\"applied_sql\":\"000000929935\",\"failed_connection\":\"000000929936\",\"completed_connection\":\"000000929937\",\"published_map\":\"000000929939\",\"created_analysis\":\"000000929940\",\"modified_analysis\":\"000000929941\",\"deleted_analysis\":\"000000929942\"};\n\n  (function(d,s,i,r) {\n    if (d.getElementById(i)){return;}\n    var n=d.createElement(s),e=d.getElementsByTagName(s)[0];\n    n.id=i;n.src='//js.hs-analytics.net/analytics/'+(Math.ceil(new Date()/r)*r)+'/'+hubspot_token+'.js';\n    e.parentNode.insertBefore(n, e);\n  })(document,\"script\",\"hs-analytics\",300000);\n</script>\n\n  </body>\n</html>\n" to include "Embed error | CARTO"
       Diff:
       @@ -1,2 +1,48 @@
       -Embed error | CARTO
       +<!DOCTYPE html>
       +<html>
       +  <head>
       +    <meta charset="utf-8">
       +    <title>Embed error | TILEO</title>
       +    <link href="/assets/4.9.268/stylesheets/password_protected.css" media="screen" rel="stylesheet" type="text/css" />
       +  </head>
       +
       +  <body class='PublicPage-body PublicPage-background--grey'>
       +    <div class='PublicPage-centerContainer'>
       +      <div class='PublicPage-container'>
       +        <div class='PublicPage-protectedEmbed-iconContainer'>
       +          <svg version="1.1" id="Outline_Icons" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50px" height="50px" viewBox="0 0 24 24">
       +            <g id="Editor-private-embed" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
       +                <path fill='#27353C' d="M17.479,11.035c-3.584,0-6.5,2.916-6.5,6.5s2.916,6.5,6.5,6.5s6.5-2.916,6.5-6.5S21.062,11.035,17.479,11.035z
       +                     M17.479,23.035c-3.033,0-5.5-2.467-5.5-5.5s2.467-5.5,5.5-5.5s5.5,2.467,5.5,5.5S20.511,23.035,17.479,23.035z"/>
       +                <circle fill='#27353C' cx="17.479" cy="20.802" r="0.593"/>
       +                <path fill='#27353C' d="M17.479,13.484c-1.256,0-2.277,1.022-2.277,2.278c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5
       +                    c0-0.705,0.573-1.278,1.277-1.278c0.706,0,1.279,0.573,1.279,1.278c0,0.705-0.574,1.278-1.279,1.278c-0.276,0-0.5,0.224-0.5,0.5
       +                    v1.779c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5v-1.334c1.017-0.229,1.779-1.138,1.779-2.223
       +                    C19.758,14.506,18.735,13.484,17.479,13.484z"/>
       +                <path fill='#27353C' d="M1,1h10v4.5C11,5.776,11.224,6,11.5,6H16v4h1V5.5c0-0.067-0.014-0.132-0.039-0.192c-0.025-0.061-0.062-0.116-0.108-0.162
       +                    l-4.999-4.999c-0.046-0.046-0.101-0.083-0.162-0.108C11.632,0.014,11.567,0,11.5,0h-11C0.224,0,0,0.224,0,0.5v21
       +                    C0,21.776,0.224,22,0.5,22H11v-1H1V1z M12,1.707L15.293,5H12V1.707z"/>
       +            </g>
       +          </svg>
       +        </div>
       +
       +        <p class='CDB-Text CDB-Size-large'>Looks like this map is set as private or no longer exists</p>
       +      </div>
       +    </div>
       +
       +    
       +    <script type="text/javascript">
       +  var hubspot_token = "3221573";
       +  var hubspot_ids = {"exported_map":"000000929938","import_failed":"000000929915","geocoding_failed":"000000929916","import_success":"000000929917","geocoding_success":"000000929918","published_visualization":"000000929919","visited_dashboard":"0000009299120","connect_dataset":"000000929921","create_map":"000000929922","export_table":"000000929923","select_wms":"000000929924","color_basemap":"000000929925","pattern_basemap":"000000929926","geocoding":"000000929927","visual_merge":"000000929928","common_data":"000000929929","cartocss_manually":"000000929930","wizard":"000000929931","filter":"000000929932","query":"000000929933","modified_style_form":"000000929934","applied_sql":"000000929935","failed_connection":"000000929936","completed_connection":"000000929937","published_map":"000000929939","created_analysis":"000000929940","modified_analysis":"000000929941","deleted_analysis":"000000929942"};
       +
       +  (function(d,s,i,r) {
       +    if (d.getElementById(i)){return;}
       +    var n=d.createElement(s),e=d.getElementsByTagName(s)[0];
       +    n.id=i;n.src='//js.hs-analytics.net/analytics/'+(Math.ceil(new Date()/r)*r)+'/'+hubspot_token+'.js';
       +    e.parentNode.insertBefore(n, e);
       +  })(document,"script","hs-analytics",300000);
       +</script>
       +
       +  </body>
       +</html>

     # ./spec/requests/carto/builder/public/embeds_controller_spec.rb:287:in `block (4 levels) in <top (required)>'

  13) Carto::Builder::Public::EmbedsController#show in organizations returns 403 for private visualizations if logged in is not an allowed user
     Failure/Error: response.body.should include 'Embed error | CARTO'
       expected "<!DOCTYPE html>\n<html>\n  <head>\n    <meta charset=\"utf-8\">\n    <title>Embed error | TILEO</title>\n    <link href=\"/assets/4.9.268/stylesheets/password_protected.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n  </head>\n\n  <body class='PublicPage-body PublicPage-background--grey'>\n    <div class='PublicPage-centerContainer'>\n      <div class='PublicPage-container'>\n        <div class='PublicPage-protectedEmbed-iconContainer'>\n          <svg version=\"1.1\" id=\"Outline_Icons\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"50px\" height=\"50px\" viewBox=\"0 0 24 24\">\n            <g id=\"Editor-private-embed\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n            \t<path fill='#27353C' d=\"M17.479,11.035c-3.584,0-6.5,2.916-6.5,6.5s2.916,6.5,6.5,6.5s6.5-2.916,6.5-6.5S21.062,11.035,17.479,11.035z\n            \t\t M17.479,23.035c-3.033,0-5.5-2.467-5.5-5.5s2.467-5.5,5.5-5.5s5.5,2.467,5.5,5.5S20.511,23.035,17.479,23.035z\"/>\n            \t<circle fill='#27353C' cx=\"17.479\" cy=\"20.802\" r=\"0.593\"/>\n            \t<path fill='#27353C' d=\"M17.479,13.484c-1.256,0-2.277,1.022-2.277,2.278c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5\n            \t\tc0-0.705,0.573-1.278,1.277-1.278c0.706,0,1.279,0.573,1.279,1.278c0,0.705-0.574,1.278-1.279,1.278c-0.276,0-0.5,0.224-0.5,0.5\n            \t\tv1.779c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5v-1.334c1.017-0.229,1.779-1.138,1.779-2.223\n            \t\tC19.758,14.506,18.735,13.484,17.479,13.484z\"/>\n            \t<path fill='#27353C' d=\"M1,1h10v4.5C11,5.776,11.224,6,11.5,6H16v4h1V5.5c0-0.067-0.014-0.132-0.039-0.192c-0.025-0.061-0.062-0.116-0.108-0.162\n            \t\tl-4.999-4.999c-0.046-0.046-0.101-0.083-0.162-0.108C11.632,0.014,11.567,0,11.5,0h-11C0.224,0,0,0.224,0,0.5v21\n            \t\tC0,21.776,0.224,22,0.5,22H11v-1H1V1z M12,1.707L15.293,5H12V1.707z\"/>\n            </g>\n          </svg>\n        </div>\n\n        <p class='CDB-Text CDB-Size-large'>Looks like this map is set as private or no longer exists</p>\n      </div>\n    </div>\n\n    \n    <script type=\"text/javascript\">\n  var hubspot_token = \"3221573\";\n  var hubspot_ids = {\"exported_map\":\"000000929938\",\"import_failed\":\"000000929915\",\"geocoding_failed\":\"000000929916\",\"import_success\":\"000000929917\",\"geocoding_success\":\"000000929918\",\"published_visualization\":\"000000929919\",\"visited_dashboard\":\"0000009299120\",\"connect_dataset\":\"000000929921\",\"create_map\":\"000000929922\",\"export_table\":\"000000929923\",\"select_wms\":\"000000929924\",\"color_basemap\":\"000000929925\",\"pattern_basemap\":\"000000929926\",\"geocoding\":\"000000929927\",\"visual_merge\":\"000000929928\",\"common_data\":\"000000929929\",\"cartocss_manually\":\"000000929930\",\"wizard\":\"000000929931\",\"filter\":\"000000929932\",\"query\":\"000000929933\",\"modified_style_form\":\"000000929934\",\"applied_sql\":\"000000929935\",\"failed_connection\":\"000000929936\",\"completed_connection\":\"000000929937\",\"published_map\":\"000000929939\",\"created_analysis\":\"000000929940\",\"modified_analysis\":\"000000929941\",\"deleted_analysis\":\"000000929942\"};\n\n  (function(d,s,i,r) {\n    if (d.getElementById(i)){return;}\n    var n=d.createElement(s),e=d.getElementsByTagName(s)[0];\n    n.id=i;n.src='//js.hs-analytics.net/analytics/'+(Math.ceil(new Date()/r)*r)+'/'+hubspot_token+'.js';\n    e.parentNode.insertBefore(n, e);\n  })(document,\"script\",\"hs-analytics\",300000);\n</script>\n\n  </body>\n</html>\n" to include "Embed error | CARTO"
       Diff:
       @@ -1,2 +1,48 @@
       -Embed error | CARTO
       +<!DOCTYPE html>
       +<html>
       +  <head>
       +    <meta charset="utf-8">
       +    <title>Embed error | TILEO</title>
       +    <link href="/assets/4.9.268/stylesheets/password_protected.css" media="screen" rel="stylesheet" type="text/css" />
       +  </head>
       +
       +  <body class='PublicPage-body PublicPage-background--grey'>
       +    <div class='PublicPage-centerContainer'>
       +      <div class='PublicPage-container'>
       +        <div class='PublicPage-protectedEmbed-iconContainer'>
       +          <svg version="1.1" id="Outline_Icons" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="50px" height="50px" viewBox="0 0 24 24">
       +            <g id="Editor-private-embed" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
       +                <path fill='#27353C' d="M17.479,11.035c-3.584,0-6.5,2.916-6.5,6.5s2.916,6.5,6.5,6.5s6.5-2.916,6.5-6.5S21.062,11.035,17.479,11.035z
       +                     M17.479,23.035c-3.033,0-5.5-2.467-5.5-5.5s2.467-5.5,5.5-5.5s5.5,2.467,5.5,5.5S20.511,23.035,17.479,23.035z"/>
       +                <circle fill='#27353C' cx="17.479" cy="20.802" r="0.593"/>
       +                <path fill='#27353C' d="M17.479,13.484c-1.256,0-2.277,1.022-2.277,2.278c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5
       +                    c0-0.705,0.573-1.278,1.277-1.278c0.706,0,1.279,0.573,1.279,1.278c0,0.705-0.574,1.278-1.279,1.278c-0.276,0-0.5,0.224-0.5,0.5
       +                    v1.779c0,0.276,0.224,0.5,0.5,0.5s0.5-0.224,0.5-0.5v-1.334c1.017-0.229,1.779-1.138,1.779-2.223
       +                    C19.758,14.506,18.735,13.484,17.479,13.484z"/>
       +                <path fill='#27353C' d="M1,1h10v4.5C11,5.776,11.224,6,11.5,6H16v4h1V5.5c0-0.067-0.014-0.132-0.039-0.192c-0.025-0.061-0.062-0.116-0.108-0.162
       +                    l-4.999-4.999c-0.046-0.046-0.101-0.083-0.162-0.108C11.632,0.014,11.567,0,11.5,0h-11C0.224,0,0,0.224,0,0.5v21
       +                    C0,21.776,0.224,22,0.5,22H11v-1H1V1z M12,1.707L15.293,5H12V1.707z"/>
       +            </g>
       +          </svg>
       +        </div>
       +
       +        <p class='CDB-Text CDB-Size-large'>Looks like this map is set as private or no longer exists</p>
       +      </div>
       +    </div>
       +
       +    
       +    <script type="text/javascript">
       +  var hubspot_token = "3221573";
       +  var hubspot_ids = {"exported_map":"000000929938","import_failed":"000000929915","geocoding_failed":"000000929916","import_success":"000000929917","geocoding_success":"000000929918","published_visualization":"000000929919","visited_dashboard":"0000009299120","connect_dataset":"000000929921","create_map":"000000929922","export_table":"000000929923","select_wms":"000000929924","color_basemap":"000000929925","pattern_basemap":"000000929926","geocoding":"000000929927","visual_merge":"000000929928","common_data":"000000929929","cartocss_manually":"000000929930","wizard":"000000929931","filter":"000000929932","query":"000000929933","modified_style_form":"000000929934","applied_sql":"000000929935","failed_connection":"000000929936","completed_connection":"000000929937","published_map":"000000929939","created_analysis":"000000929940","modified_analysis":"000000929941","deleted_analysis":"000000929942"};
       +
       +  (function(d,s,i,r) {
       +    if (d.getElementById(i)){return;}
       +    var n=d.createElement(s),e=d.getElementsByTagName(s)[0];
       +    n.id=i;n.src='//js.hs-analytics.net/analytics/'+(Math.ceil(new Date()/r)*r)+'/'+hubspot_token+'.js';
       +    e.parentNode.insertBefore(n, e);
       +  })(document,"script","hs-analytics",300000);
       +</script>
       +
       +  </body>
       +</html>

     # ./spec/requests/carto/builder/public/embeds_controller_spec.rb:314:in `block (4 levels) in <top (required)>'

  14) Carto::Builder::VisualizationsController#show does not show raster kind visualizations
     Failure/Error: response.status.should == 404
       expected: 404
            got: 200 (using ==)
     # ./spec/requests/carto/builder/visualizations_controller_spec.rb:154:in `block (3 levels) in <top (required)>'

  15) SessionsController#login with Central disallows login from an organization login page to a non-member
     Failure/Error: response.body.should include 'Not a member'
       expected "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"utf-8\">\n  <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n  <title>organization01000870 — TILEO</title>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n  <meta name=\"description\" content=\"organization01000870\">\n  <link href=\"/assets/4.9.268/favicons/favicon.ico?1510139890\" rel=\"shortcut icon\" type=\"image/vnd.microsoft.icon\" />\n  <link href=\"/assets/4.9.268/stylesheets/sessions.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />\n  \n  \n</head>\n<body class=\"frontend\">\n    \n\n\n<div class=\"CDB-Text Sessions\" style=\"background-image: linear-gradient(0deg, #F9F9F9 70%, rgba(249, 249, 249, 0.4) 100%);\">\n  <div class=\"Sessions-content\">\n    <div class=\"Sessions-inner\">\n      <div class=\"Sessions-notloggedin is-active\">\n        <div class=\"u-inner\">\n          <div class=\"Sessions-left\">\n            <div class=\"Sessions-logoContainer\">\n              <picture class=\"Navbar-brand\">\n                    <img alt=\"Tileo\" src=\"/assets/4.9.268/images/tileo/logo/tileo-gradient_logo_combination.svg\" />\n              </picture>\n            </div>\n\n            <div class=\"Sessions-form\">\n              <form accept-charset=\"UTF-8\" action=\"/sessions/create\" class=\"js-Loading-form\" method=\"post\"><div style=\"margin:0;padding:0;display:inline\"><input name=\"utf8\" type=\"hidden\" value=\"&#x2713;\" /></div>\n\n                  <input type=\"hidden\" value=\"\" id=\"google_access_token\" name=\"google_access_token\" />\n                  <input type=\"hidden\" value=\"0\" id=\"google_access_filled\" name=\"google_access_filled\" />\n\n\n                  <div class=\"Sessions-field\">\n                    <input class=\"CDB-Size-medium Sessions-input topBorderRadius\" id=\"email\" name=\"email\" placeholder=\"Email o usuario\" title=\"Email o usuario\" type=\"text\" value=\"organization01000870\" />\n\n                      <div class=\"Sessions-fieldError js-Sessions-fieldError\" data-content=\"The user is not part of the organization\">!</div>\n                  </div>\n\n                  <div class=\"Sessions-field\">\n                    <input class=\"CDB-Size-medium Sessions-input bottomBorderRadius\" id=\"password\" name=\"password\" placeholder=\"Contraseña\" type=\"password\" value=\"\" />\n\n                      <div class=\"Sessions-fieldError js-Sessions-fieldError\" data-content=\"The user is not part of the organization\">!</div>\n\n                  </div>\n\n                  <div class=\"Sessions-field\">\n                    <p>\n                      <button type=\"submit\" class=\"Sessions-submitButton js-Sessions-button js-Loading\">\n                        <span class=\"js-Loading-text\">Entrar</span>\n                        <span class=\"js-Loading-anim\" style=\"display: none;\">\n                          <span class=\"Loading-item\">\n                            <span class=\"Loading-itemInner Loading-itemInner--01\"></span>\n                          </span>\n\n                          <span class=\"Loading-item\">\n                            <span class=\"Loading-itemInner Loading-itemInner--02\"></span>\n                          </span>\n\n                          <span class=\"Loading-item\">\n                            <span class=\"Loading-itemInner Loading-itemInner--03\"></span>\n                          </span>\n                        </span>\n                      </button>\n                    </p>\n                  </div>\n\n</form>              <div class=\"Sessions-field Sessions-oauthContainer\">\n\n              </div>\n\n                <p class=\"CDB-Text CDB-Size-medium u-altTextColor u-tSpace--m u-justifyCenter Sessions-description\">\n                  ¿No eres miembro de la organización organization01000870? Usa el <a href=\"http:/login\">formulario de entrada normal</a> en su lugar.\n                </p>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      <div class=\"Sessions-loggedin\">\n        <div class=\"Spinner\"></div>\n      </div>\n    </div>\n  </div>\n</div>\n\n  \n    <script src=\"/assets/4.9.268/javascripts/cdb.js\" type=\"text/javascript\"></script>\n<script src=\"/assets/4.9.268/javascripts/sessions.js\" type=\"text/javascript\"></script>\n\n  \n</body>\n</html>\n" to include "Not a member"
       Diff:
       @@ -1,2 +1,97 @@
       -Not a member
       +<!DOCTYPE html>
       +<html>
       +<head>
       +  <meta charset="utf-8">
       +  <meta http-equiv="X-UA-Compatible" content="IE=edge">
       +  <title>organization01000870 — TILEO</title>
       +  <meta name="viewport" content="width=device-width, initial-scale=1">
       +  <meta name="description" content="organization01000870">
       +  <link href="/assets/4.9.268/favicons/favicon.ico?1510139890" rel="shortcut icon" type="image/vnd.microsoft.icon" />
       +  <link href="/assets/4.9.268/stylesheets/sessions.css" media="screen" rel="stylesheet" type="text/css" />
       +  
       +  
       +</head>
       +<body class="frontend">
       +    
       +
       +
       +<div class="CDB-Text Sessions" style="background-image: linear-gradient(0deg, #F9F9F9 70%, rgba(249, 249, 249, 0.4) 100%);">
       +  <div class="Sessions-content">
       +    <div class="Sessions-inner">
       +      <div class="Sessions-notloggedin is-active">
       +        <div class="u-inner">
       +          <div class="Sessions-left">
       +            <div class="Sessions-logoContainer">
       +              <picture class="Navbar-brand">
       +                    <img alt="Tileo" src="/assets/4.9.268/images/tileo/logo/tileo-gradient_logo_combination.svg" />
       +              </picture>
       +            </div>
       +
       +            <div class="Sessions-form">
       +              <form accept-charset="UTF-8" action="/sessions/create" class="js-Loading-form" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="&#x2713;" /></div>
       +
       +                  <input type="hidden" value="" id="google_access_token" name="google_access_token" />
       +                  <input type="hidden" value="0" id="google_access_filled" name="google_access_filled" />
       +
       +
       +                  <div class="Sessions-field">
       +                    <input class="CDB-Size-medium Sessions-input topBorderRadius" id="email" name="email" placeholder="Email o usuario" title="Email o usuario" type="text" value="organization01000870" />
       +
       +                      <div class="Sessions-fieldError js-Sessions-fieldError" data-content="The user is not part of the organization">!</div>
       +                  </div>
       +
       +                  <div class="Sessions-field">
       +                    <input class="CDB-Size-medium Sessions-input bottomBorderRadius" id="password" name="password" placeholder="Contraseña" type="password" value="" />
       +
       +                      <div class="Sessions-fieldError js-Sessions-fieldError" data-content="The user is not part of the organization">!</div>
       +
       +                  </div>
       +
       +                  <div class="Sessions-field">
       +                    <p>
       +                      <button type="submit" class="Sessions-submitButton js-Sessions-button js-Loading">
       +                        <span class="js-Loading-text">Entrar</span>
       +                        <span class="js-Loading-anim" style="display: none;">
       +                          <span class="Loading-item">
       +                            <span class="Loading-itemInner Loading-itemInner--01"></span>
       +                          </span>
       +
       +                          <span class="Loading-item">
       +                            <span class="Loading-itemInner Loading-itemInner--02"></span>
       +                          </span>
       +
       +                          <span class="Loading-item">
       +                            <span class="Loading-itemInner Loading-itemInner--03"></span>
       +                          </span>
       +                        </span>
       +                      </button>
       +                    </p>
       +                  </div>
       +
       +</form>              <div class="Sessions-field Sessions-oauthContainer">
       +
       +              </div>
       +
       +                <p class="CDB-Text CDB-Size-medium u-altTextColor u-tSpace--m u-justifyCenter Sessions-description">
       +                  ¿No eres miembro de la organización organization01000870? Usa el <a href="http:/login">formulario de entrada normal</a> en su lugar.
       +                </p>
       +            </div>
       +          </div>
       +        </div>
       +      </div>
       +
       +      <div class="Sessions-loggedin">
       +        <div class="Spinner"></div>
       +      </div>
       +    </div>
       +  </div>
       +</div>
       +
       +  
       +    <script src="/assets/4.9.268/javascripts/cdb.js" type="text/javascript"></script>
       +<script src="/assets/4.9.268/javascripts/sessions.js" type="text/javascript"></script>
       +
       +  
       +</body>
       +</html>

     # ./spec/requests/sessions_controller_spec.rb:525:in `block (4 levels) in <top (required)>'

  16) Sessions shouldn't show error page when trying to connect with supported browser
     Failure/Error: page.should have_content("Login")
       expected there to be content "Login" in "\n\n  \n  \n  TILEO\n  \n  \n  \n  \n  \n  \n\n\n  \n\n\n  \n    \n      \n        \n          \n            \n              \n                    \n              \n            \n\n            \n              \n\n                  \n                  \n\n\n                  \n                    \n\n                  \n\n                  \n                    \n\n\n                  \n\n                  \n                    \n                      \n                        Entrar\n                        \n                          \n                            \n                          \n\n                          \n                            \n                          \n\n                          \n                            \n                          \n                        \n                      \n                    \n                  \n\n              \n\n              \n\n            \n          \n        \n      \n\n      \n        \n      \n    \n  \n\n\n  \n    \n\n\n  \n\n"
     # ./spec/requests/sessions_spec.rb:108:in `block (3 levels) in <top (required)>'
     # ./spec/requests/sessions_spec.rb:101:in `each'
     # ./spec/requests/sessions_spec.rb:101:in `block (2 levels) in <top (required)>'

  17) Sessions valid user Login in the application
     Failure/Error: click_link_or_button 'Login'
     Capybara::ElementNotFound:
       no link or button 'Login' found
     # (eval):2:in `click_link_or_button'
     # ./spec/requests/sessions_spec.rb:45:in `block (3 levels) in <top (required)>'

  18) Sessions Organization login allows login to organization users
     Failure/Error: click_link_or_button 'Login'
     Capybara::ElementNotFound:
       no link or button 'Login' found
     # (eval):2:in `click_link_or_button'
     # ./spec/requests/sessions_spec.rb:166:in `send_login_form'
     # ./spec/requests/sessions_spec.rb:117:in `block (3 levels) in <top (required)>'