tablo_connect 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE +22 -0
- data/README.md +43 -0
- data/Rakefile +26 -0
- data/app/assets/fonts/tablo_connect/bootstrap/glyphicons-halflings-regular.eot +0 -0
- data/app/assets/fonts/tablo_connect/bootstrap/glyphicons-halflings-regular.svg +288 -0
- data/app/assets/fonts/tablo_connect/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- data/app/assets/fonts/tablo_connect/bootstrap/glyphicons-halflings-regular.woff +0 -0
- data/app/assets/fonts/tablo_connect/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-animate.js +3928 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-animate.min.js +56 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-animate.min.js.map +8 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-aria.js +397 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-aria.min.js +14 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-aria.min.js.map +8 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-cookies.js +321 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-cookies.min.js +9 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-cookies.min.js.map +8 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-csp.css +21 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-loader.js +443 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-loader.min.js +10 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-loader.min.js.map +8 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-message-format.js +980 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-message-format.min.js +26 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-message-format.min.js.map +8 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-messages.js +685 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-messages.min.js +12 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-messages.min.js.map +8 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-mocks.js +2470 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-resource.js +675 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-resource.min.js +13 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-resource.min.js.map +8 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-route.js +991 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-route.min.js +15 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-route.min.js.map +8 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-sanitize.js +683 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-sanitize.min.js +16 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-sanitize.min.js.map +8 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-scenario.js +40324 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-touch.js +628 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-touch.min.js +13 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-touch.min.js.map +8 -0
- data/app/assets/javascripts/tablo_connect/angular/angular-ui-router.js +4370 -0
- data/app/assets/javascripts/tablo_connect/angular/angular.js +28904 -0
- data/app/assets/javascripts/tablo_connect/angular/angular.min.js +294 -0
- data/app/assets/javascripts/tablo_connect/angular/angular.min.js.map +8 -0
- data/app/assets/javascripts/tablo_connect/angular/errors.json +1 -0
- data/app/assets/javascripts/tablo_connect/angular/version.json +1 -0
- data/app/assets/javascripts/tablo_connect/angular/version.txt +1 -0
- data/app/assets/javascripts/tablo_connect/application.js +21 -0
- data/app/assets/javascripts/tablo_connect/bootstrap/affix.js +162 -0
- data/app/assets/javascripts/tablo_connect/bootstrap/alert.js +94 -0
- data/app/assets/javascripts/tablo_connect/bootstrap/button.js +120 -0
- data/app/assets/javascripts/tablo_connect/bootstrap/carousel.js +237 -0
- data/app/assets/javascripts/tablo_connect/bootstrap/collapse.js +211 -0
- data/app/assets/javascripts/tablo_connect/bootstrap/dropdown.js +165 -0
- data/app/assets/javascripts/tablo_connect/bootstrap/modal.js +337 -0
- data/app/assets/javascripts/tablo_connect/bootstrap/popover.js +108 -0
- data/app/assets/javascripts/tablo_connect/bootstrap/scrollspy.js +172 -0
- data/app/assets/javascripts/tablo_connect/bootstrap/tab.js +155 -0
- data/app/assets/javascripts/tablo_connect/bootstrap/tooltip.js +514 -0
- data/app/assets/javascripts/tablo_connect/bootstrap/transition.js +59 -0
- data/app/assets/javascripts/tablo_connect/jquery/jquery.js +9210 -0
- data/app/assets/javascripts/tablo_connect/ng_app/app.js +39 -0
- data/app/assets/javascripts/tablo_connect/ng_app/controllers/episodes_controller.js +17 -0
- data/app/assets/javascripts/tablo_connect/ng_app/controllers/home_controller.js +9 -0
- data/app/assets/javascripts/tablo_connect/ng_app/controllers/movies_controller.js +17 -0
- data/app/assets/javascripts/tablo_connect/ng_app/controllers/shows_controller.js +9 -0
- data/app/assets/javascripts/tablo_connect/ng_app/filters/titleize_filter.js +17 -0
- data/app/assets/javascripts/tablo_connect/ng_app/filters/url_filter.js +19 -0
- data/app/assets/javascripts/tablo_connect/ng_app/modules/alerts/alerts.js +9 -0
- data/app/assets/javascripts/tablo_connect/ng_app/modules/alerts/directives/alerts_directive.js +19 -0
- data/app/assets/javascripts/tablo_connect/ng_app/modules/alerts/services/alerts_service.js +22 -0
- data/app/assets/javascripts/tablo_connect/ng_app/modules/alerts/templates/alerts.html +6 -0
- data/app/assets/javascripts/tablo_connect/ng_app/modules/tablo_sync/directives/tablo_sync_directive.js +31 -0
- data/app/assets/javascripts/tablo_connect/ng_app/modules/tablo_sync/services/tablo_sync_service.js +20 -0
- data/app/assets/javascripts/tablo_connect/ng_app/modules/tablo_sync/tablo_sync.js +9 -0
- data/app/assets/javascripts/tablo_connect/ng_app/modules/tablo_sync/templates/tablo_sync.html +4 -0
- data/app/assets/javascripts/tablo_connect/ng_app/services/tablo_service.js +98 -0
- data/app/assets/javascripts/tablo_connect/ng_app/templates/episodes.html +36 -0
- data/app/assets/javascripts/tablo_connect/ng_app/templates/index.html +3 -0
- data/app/assets/javascripts/tablo_connect/ng_app/templates/movies.html +33 -0
- data/app/assets/javascripts/tablo_connect/ng_app/templates/shows.html +13 -0
- data/app/assets/stylesheets/tablo_connect/_bootstrap.scss +56 -0
- data/app/assets/stylesheets/tablo_connect/_global.scss +19 -0
- data/app/assets/stylesheets/tablo_connect/_movies.scss +0 -0
- data/app/assets/stylesheets/tablo_connect/_shows.scss +30 -0
- data/app/assets/stylesheets/tablo_connect/application.scss +18 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_alerts.scss +73 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_badges.scss +68 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_breadcrumbs.scss +26 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_button-groups.scss +244 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_buttons.scss +168 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_carousel.scss +269 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_close.scss +36 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_code.scss +69 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_component-animations.scss +37 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_dropdowns.scss +216 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_forms.scss +611 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_glyphicons.scss +307 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_grid.scss +84 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_input-groups.scss +167 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_jumbotron.scss +52 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_labels.scss +66 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_list-group.scss +130 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_media.scss +66 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_mixins.scss +40 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_modals.scss +150 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_navbar.scss +662 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_navs.scss +242 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_normalize.scss +424 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_pager.scss +54 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_pagination.scss +89 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_panels.scss +271 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_popovers.scss +131 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_print.scss +101 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_progress-bars.scss +87 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_responsive-embed.scss +35 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_responsive-utilities.scss +179 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_scaffolding.scss +161 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_tables.scss +234 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_theme.scss +291 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_thumbnails.scss +38 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_tooltip.scss +101 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_type.scss +298 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_utilities.scss +55 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_variables.scss +872 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/_wells.scss +29 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_alerts.scss +14 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_background-variant.scss +12 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_border-radius.scss +18 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_buttons.scss +68 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_center-block.scss +7 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_clearfix.scss +22 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_forms.scss +88 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_gradients.scss +58 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_grid-framework.scss +81 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_grid.scss +122 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_hide-text.scss +21 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_image.scss +33 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_labels.scss +12 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_list-group.scss +32 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_nav-divider.scss +10 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_nav-vertical-align.scss +9 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_opacity.scss +8 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_pagination.scss +24 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_panels.scss +24 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_progress-bar.scss +10 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_reset-filter.scss +8 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_reset-text.scss +18 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_resize.scss +6 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_responsive-visibility.scss +21 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_size.scss +10 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_tab-focus.scss +9 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_table-row.scss +28 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_text-emphasis.scss +12 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_text-overflow.scss +8 -0
- data/app/assets/stylesheets/tablo_connect/bootstrap/mixins/_vendor-prefixes.scss +222 -0
- data/app/controllers/tablo_connect/application_controller.rb +4 -0
- data/app/controllers/tablo_connect/copy_controller.rb +75 -0
- data/app/controllers/tablo_connect/home_controller.rb +6 -0
- data/app/controllers/tablo_connect/movies_controller.rb +9 -0
- data/app/controllers/tablo_connect/shows_controller.rb +11 -0
- data/app/controllers/tablo_connect/sync_controller.rb +73 -0
- data/app/helpers/tablo_connect/application_helper.rb +4 -0
- data/app/helpers/tablo_connect/movies_helper.rb +4 -0
- data/app/helpers/tablo_connect/shows_helper.rb +4 -0
- data/app/models/tablo_connect/movie.rb +14 -0
- data/app/models/tablo_connect/show.rb +23 -0
- data/app/views/layouts/tablo_connect/_header.html.erb +20 -0
- data/app/views/layouts/tablo_connect/application.html.erb +19 -0
- data/app/views/tablo_connect/home/index.html.erb +1 -0
- data/config/routes.rb +10 -0
- data/db/migrate/20151101164611_create_tablo_connect_movies.rb +18 -0
- data/db/migrate/20151101165020_create_tablo_connect_shows.rb +21 -0
- data/lib/tablo_connect.rb +7 -0
- data/lib/tablo_connect/engine.rb +28 -0
- data/lib/tablo_connect/version.rb +3 -0
- data/lib/tasks/tablo_connect_tasks.rake +4 -0
- data/spec/controllers/tablo_connect/copy_controller_spec.rb +244 -0
- data/spec/controllers/tablo_connect/movies_controller_spec.rb +27 -0
- data/spec/controllers/tablo_connect/shows_controller_spec.rb +45 -0
- data/spec/controllers/tablo_connect/sync_controller_spec.rb +209 -0
- data/spec/factories/tablo_connect_movies.rb +11 -0
- data/spec/factories/tablo_connect_shows.rb +15 -0
- data/spec/javascript/angular-environment.js +1 -0
- data/spec/javascript/karma.conf.js +48 -0
- data/spec/javascript/unit/controllers/episodes_controller_spec.js +49 -0
- data/spec/javascript/unit/controllers/home_controller_spec.js +34 -0
- data/spec/javascript/unit/controllers/movies_controller_spec.js +55 -0
- data/spec/javascript/unit/controllers/shows_controller_spec.js +33 -0
- data/spec/javascript/unit/filters/titleize_filter_spec.js +25 -0
- data/spec/javascript/unit/filters/url_filter_spec.js +33 -0
- data/spec/javascript/unit/modules/alerts/directives/alerts_directive_spec.js +39 -0
- data/spec/javascript/unit/modules/alerts/services/alerts_service_spec.js +51 -0
- data/spec/javascript/unit/modules/tablo_sync/directives/tablo_sync_directive_spec.js +68 -0
- data/spec/javascript/unit/modules/tablo_sync/services/tablo_sync_service_spec.js +26 -0
- data/spec/javascript/unit/services/tablo_service_spec.js +28 -0
- data/spec/models/tablo_connect/movie_spec.rb +32 -0
- data/spec/models/tablo_connect/show_spec.rb +65 -0
- data/spec/spec_helper.rb +86 -0
- data/spec/test_app/README.rdoc +28 -0
- data/spec/test_app/Rakefile +6 -0
- data/spec/test_app/app/assets/javascripts/application.js +13 -0
- data/spec/test_app/app/assets/stylesheets/application.css +15 -0
- data/spec/test_app/app/controllers/application_controller.rb +5 -0
- data/spec/test_app/app/helpers/application_helper.rb +2 -0
- data/spec/test_app/app/views/layouts/application.html.erb +14 -0
- data/spec/test_app/bin/bundle +3 -0
- data/spec/test_app/bin/rails +4 -0
- data/spec/test_app/bin/rake +4 -0
- data/spec/test_app/bin/setup +29 -0
- data/spec/test_app/config.ru +4 -0
- data/spec/test_app/config/application.rb +32 -0
- data/spec/test_app/config/boot.rb +5 -0
- data/spec/test_app/config/database.yml +25 -0
- data/spec/test_app/config/environment.rb +5 -0
- data/spec/test_app/config/environments/development.rb +41 -0
- data/spec/test_app/config/environments/production.rb +79 -0
- data/spec/test_app/config/environments/test.rb +42 -0
- data/spec/test_app/config/initializers/assets.rb +11 -0
- data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/test_app/config/initializers/cookies_serializer.rb +3 -0
- data/spec/test_app/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/test_app/config/initializers/inflections.rb +16 -0
- data/spec/test_app/config/initializers/mime_types.rb +4 -0
- data/spec/test_app/config/initializers/session_store.rb +3 -0
- data/spec/test_app/config/initializers/wrap_parameters.rb +14 -0
- data/spec/test_app/config/locales/en.yml +23 -0
- data/spec/test_app/config/routes.rb +4 -0
- data/spec/test_app/config/secrets.yml +22 -0
- data/spec/test_app/db/schema.rb +49 -0
- data/spec/test_app/db/test.sqlite3 +0 -0
- data/spec/test_app/log/test.log +5561 -0
- data/spec/test_app/public/404.html +67 -0
- data/spec/test_app/public/422.html +67 -0
- data/spec/test_app/public/500.html +66 -0
- data/spec/test_app/public/favicon.ico +0 -0
- metadata +550 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
describe('MoviesCtrl', function () {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
var $httpBackend,
|
5
|
+
scope,
|
6
|
+
ctrl,
|
7
|
+
alertsService,
|
8
|
+
tabloService,
|
9
|
+
tabloBaseUrl;
|
10
|
+
|
11
|
+
beforeEach(module('ac.tabloConnectApp'));
|
12
|
+
|
13
|
+
beforeEach(inject(function ($rootScope, $controller, _$httpBackend_, _alertsService_, _tabloService_, _tabloBaseUrl_) {
|
14
|
+
$httpBackend = _$httpBackend_;
|
15
|
+
scope = $rootScope.$new();
|
16
|
+
alertsService = _alertsService_;
|
17
|
+
tabloService = _tabloService_;
|
18
|
+
tabloBaseUrl = _tabloBaseUrl_;
|
19
|
+
spyOn(alertsService, 'getAlerts').and.callThrough();
|
20
|
+
spyOn(tabloService, 'movieData').and.callThrough();
|
21
|
+
spyOn(tabloService, 'initPollStatus').and.callThrough();
|
22
|
+
ctrl = $controller('MoviesCtrl', {$scope: scope, $element: scope.$element, tabloBaseUrl: tabloBaseUrl});
|
23
|
+
}));
|
24
|
+
|
25
|
+
afterEach(function () {
|
26
|
+
$httpBackend.verifyNoOutstandingExpectation();
|
27
|
+
$httpBackend.verifyNoOutstandingRequest();
|
28
|
+
});
|
29
|
+
|
30
|
+
it("calls alertsService.getAlerts()", function () {
|
31
|
+
expect(alertsService.getAlerts).toHaveBeenCalled();
|
32
|
+
});
|
33
|
+
|
34
|
+
it("calls tabloService.movieData", function () {
|
35
|
+
expect(tabloService.movieData).toHaveBeenCalled();
|
36
|
+
});
|
37
|
+
|
38
|
+
it('sets the tabloBaseUrl', function () {
|
39
|
+
expect(scope.tabloBaseUrl).toEqual(tabloBaseUrl);
|
40
|
+
});
|
41
|
+
|
42
|
+
describe('$scope.copyRecording', function () {
|
43
|
+
it('calls tabloService.initCopy', function () {
|
44
|
+
spyOn(tabloService, 'initCopy');
|
45
|
+
spyOn(alertsService, 'clearAlerts');
|
46
|
+
scope.copyRecording({tablo_id: 1234});
|
47
|
+
expect(tabloService.initCopy).toHaveBeenCalledWith({tablo_id: 1234}, 'movie');
|
48
|
+
expect(alertsService.clearAlerts).toHaveBeenCalled();
|
49
|
+
});
|
50
|
+
});
|
51
|
+
|
52
|
+
it("calls tabloService.initPollStatus", function () {
|
53
|
+
expect(tabloService.initPollStatus).toHaveBeenCalledWith([], 'movie');
|
54
|
+
});
|
55
|
+
});
|
@@ -0,0 +1,33 @@
|
|
1
|
+
describe('ShowsCtrl', function () {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
var $httpBackend,
|
5
|
+
scope,
|
6
|
+
ctrl,
|
7
|
+
tabloService,
|
8
|
+
tabloBaseUrl;
|
9
|
+
|
10
|
+
beforeEach(module('ac.tabloConnectApp'));
|
11
|
+
|
12
|
+
beforeEach(inject(function ($rootScope, $controller, _$httpBackend_, _tabloService_, _tabloBaseUrl_) {
|
13
|
+
$httpBackend = _$httpBackend_;
|
14
|
+
scope = $rootScope.$new();
|
15
|
+
tabloService = _tabloService_;
|
16
|
+
tabloBaseUrl = _tabloBaseUrl_;
|
17
|
+
spyOn(tabloService, 'showData').and.callThrough();
|
18
|
+
ctrl = $controller('ShowsCtrl', {$scope: scope, $element: scope.$element, tabloBaseUrl: tabloBaseUrl});
|
19
|
+
}));
|
20
|
+
|
21
|
+
afterEach(function () {
|
22
|
+
$httpBackend.verifyNoOutstandingExpectation();
|
23
|
+
$httpBackend.verifyNoOutstandingRequest();
|
24
|
+
});
|
25
|
+
|
26
|
+
it ("calls tabloService.showData", function(){
|
27
|
+
expect(tabloService.showData).toHaveBeenCalled();
|
28
|
+
});
|
29
|
+
|
30
|
+
it('sets the tabloBaseUrl', function () {
|
31
|
+
expect(scope.tabloBaseUrl).toEqual(tabloBaseUrl);
|
32
|
+
});
|
33
|
+
});
|
@@ -0,0 +1,25 @@
|
|
1
|
+
'use strict';
|
2
|
+
|
3
|
+
/* jasmine specs for filters go here */
|
4
|
+
|
5
|
+
describe('filters', function () {
|
6
|
+
beforeEach(module('ac.titleize'));
|
7
|
+
|
8
|
+
describe('titleize', function () {
|
9
|
+
it('returns a formatted string with spaces as a title', inject(function (titleizeFilter) {
|
10
|
+
expect(titleizeFilter('the quick red fox')).toBe('The Quick Red Fox');
|
11
|
+
}));
|
12
|
+
|
13
|
+
it('returns a formatted string with underscores as a title', inject(function (titleizeFilter) {
|
14
|
+
expect(titleizeFilter('jumped_over_the_lazy_brown_dog')).toBe('Jumped Over The Lazy Brown Dog');
|
15
|
+
}));
|
16
|
+
|
17
|
+
it('returns a formatted string with underscores and spaces as a title', inject(function (titleizeFilter) {
|
18
|
+
expect(titleizeFilter('lorem_ipsum dolor sit_amEt, conSectetur adipisicing elit')).toBe('Lorem Ipsum Dolor Sit Amet, Consectetur Adipisicing Elit');
|
19
|
+
}));
|
20
|
+
|
21
|
+
it('returns the value if it is not truthy', inject(function (titleizeFilter) {
|
22
|
+
expect(titleizeFilter(undefined)).toBe(undefined);
|
23
|
+
}));
|
24
|
+
});
|
25
|
+
});
|
@@ -0,0 +1,33 @@
|
|
1
|
+
describe('filters', function () {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
beforeEach(module('ac.url'));
|
5
|
+
|
6
|
+
describe('urlencode', function () {
|
7
|
+
describe('when the value is undefined', function () {
|
8
|
+
it('returns undefined', inject(function (urlencodeFilter) {
|
9
|
+
expect(urlencodeFilter(undefined)).toBe(undefined);
|
10
|
+
}));
|
11
|
+
});
|
12
|
+
|
13
|
+
describe('when the value is defined', function () {
|
14
|
+
it('returns the string url encoded', inject(function (urlencodeFilter) {
|
15
|
+
expect(urlencodeFilter('20/20')).toBe('20%2F20');
|
16
|
+
}));
|
17
|
+
});
|
18
|
+
});
|
19
|
+
|
20
|
+
describe('urldecode', function () {
|
21
|
+
describe('when the value is undefined', function () {
|
22
|
+
it('returns undefined', inject(function (urldecodeFilter) {
|
23
|
+
expect(urldecodeFilter(undefined)).toBe(undefined);
|
24
|
+
}));
|
25
|
+
});
|
26
|
+
|
27
|
+
describe('when the value is defined', function () {
|
28
|
+
it('returns the string url decoded', inject(function (urldecodeFilter) {
|
29
|
+
expect(urldecodeFilter('20%2F20')).toBe('20/20');
|
30
|
+
}));
|
31
|
+
});
|
32
|
+
});
|
33
|
+
});
|
@@ -0,0 +1,39 @@
|
|
1
|
+
describe('acAlerts directive', function() {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
var $compile,
|
5
|
+
scope,
|
6
|
+
element;
|
7
|
+
|
8
|
+
beforeEach(module('ngSanitize',
|
9
|
+
'ac.alerts',
|
10
|
+
'/assets/tablo_connect/ng_app/modules/alerts/templates/alerts.html'
|
11
|
+
));
|
12
|
+
|
13
|
+
beforeEach(inject(function(_$compile_, $rootScope){
|
14
|
+
$compile = _$compile_;
|
15
|
+
scope = $rootScope.$new();
|
16
|
+
}));
|
17
|
+
|
18
|
+
it('replaces the element with the alerts html', function() {
|
19
|
+
element = $compile('<ac-alerts></ac-alerts>')(scope);
|
20
|
+
scope.$digest();
|
21
|
+
expect(element.attr('id')).toEqual('alerts');
|
22
|
+
});
|
23
|
+
|
24
|
+
describe('$scope.closeAlert()', function () {
|
25
|
+
it('splices the alert from the alerts array', function() {
|
26
|
+
scope.alerts = {messages: [
|
27
|
+
{type: 'danger', msg: 'There was an error.'},
|
28
|
+
{type: 'success', msg: 'Success!'}
|
29
|
+
]};
|
30
|
+
element = $compile('<ac-alerts></ac-alerts>')(scope);
|
31
|
+
scope.$digest();
|
32
|
+
expect(element.find('.alert').length).toEqual(2);
|
33
|
+
scope.closeAlert(0);
|
34
|
+
scope.$digest();
|
35
|
+
expect(element.find('.alert').length).toEqual(1);
|
36
|
+
expect(element.find('.alert').text()).toContain('Success!');
|
37
|
+
});
|
38
|
+
});
|
39
|
+
});
|
@@ -0,0 +1,51 @@
|
|
1
|
+
describe('alertsService', function () {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
var $httpBackend,
|
5
|
+
alertsService;
|
6
|
+
|
7
|
+
beforeEach(module('ngSanitize',
|
8
|
+
'ac.alertsService',
|
9
|
+
'/assets/tablo_connect/ng_app/modules/alerts/templates/alerts.html'
|
10
|
+
));
|
11
|
+
|
12
|
+
beforeEach(inject(function (_$httpBackend_, _alertsService_) {
|
13
|
+
$httpBackend = _$httpBackend_;
|
14
|
+
alertsService = _alertsService_;
|
15
|
+
}));
|
16
|
+
|
17
|
+
afterEach(function () {
|
18
|
+
$httpBackend.verifyNoOutstandingExpectation();
|
19
|
+
$httpBackend.verifyNoOutstandingRequest();
|
20
|
+
});
|
21
|
+
|
22
|
+
describe('getAlerts()', function () {
|
23
|
+
it('returns the alerts', function () {
|
24
|
+
expect(alertsService.getAlerts()).toEqual({messages: []});
|
25
|
+
});
|
26
|
+
});
|
27
|
+
|
28
|
+
describe('addAlert()', function () {
|
29
|
+
it('adds the alert to the alerts.messages array', function () {
|
30
|
+
expect(alertsService.getAlerts()).toEqual({messages: []});
|
31
|
+
alertsService.addAlert('success', 'In my experience there is no such thing as luck.');
|
32
|
+
expect(alertsService.getAlerts()).toEqual({
|
33
|
+
messages: [{
|
34
|
+
type: 'success',
|
35
|
+
msg: 'In my experience there is no such thing as luck.'
|
36
|
+
}]
|
37
|
+
});
|
38
|
+
});
|
39
|
+
});
|
40
|
+
|
41
|
+
describe('getAlerts()', function () {
|
42
|
+
it('returns the alerts', function () {
|
43
|
+
alertsService.addAlert('success', 'In my experience there is no such thing as luck.');
|
44
|
+
alertsService.addAlert('danger', 'I find your lack of faith disturbing.');
|
45
|
+
expect(alertsService.getAlerts().messages.length).toEqual(2);
|
46
|
+
alertsService.clearAlerts();
|
47
|
+
expect(alertsService.getAlerts().messages.length).toEqual(0);
|
48
|
+
});
|
49
|
+
});
|
50
|
+
|
51
|
+
});
|
@@ -0,0 +1,68 @@
|
|
1
|
+
describe('tabloSync directive', function () {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
var $compile,
|
5
|
+
$httpBackend,
|
6
|
+
scope,
|
7
|
+
element,
|
8
|
+
tabloSyncService,
|
9
|
+
alertsService;
|
10
|
+
|
11
|
+
beforeEach(module('ngSanitize',
|
12
|
+
'ac.tabloSyncModule',
|
13
|
+
'ac.alertsModule',
|
14
|
+
'/assets/tablo_connect/ng_app/modules/tablo_sync/templates/tablo_sync.html'
|
15
|
+
));
|
16
|
+
|
17
|
+
beforeEach(inject(function (_$compile_, _$httpBackend_, $rootScope, _tabloSyncService_, _alertsService_) {
|
18
|
+
$compile = _$compile_;
|
19
|
+
$httpBackend = _$httpBackend_;
|
20
|
+
tabloSyncService = _tabloSyncService_;
|
21
|
+
alertsService = _alertsService_;
|
22
|
+
scope = $rootScope.$new();
|
23
|
+
element = $compile('<tablo-sync></tablo-sync>')(scope);
|
24
|
+
scope.$digest();
|
25
|
+
}));
|
26
|
+
|
27
|
+
afterEach(function () {
|
28
|
+
$httpBackend.verifyNoOutstandingExpectation();
|
29
|
+
$httpBackend.verifyNoOutstandingRequest();
|
30
|
+
});
|
31
|
+
|
32
|
+
it('replaces the element with the tablo sync html', function () {
|
33
|
+
expect(element.find('a').length).toBe(1);
|
34
|
+
});
|
35
|
+
|
36
|
+
it('sets $scope.syncing to false', function () {
|
37
|
+
expect(scope.syncing).toBe(false);
|
38
|
+
});
|
39
|
+
|
40
|
+
describe('syncRecordings()', function () {
|
41
|
+
beforeEach(function () {
|
42
|
+
spyOn(alertsService, 'clearAlerts').and.callThrough();
|
43
|
+
spyOn(tabloSyncService, 'syncRecordings').and.callThrough();
|
44
|
+
$httpBackend.when('GET', '/tablo/sync').respond(200);
|
45
|
+
});
|
46
|
+
|
47
|
+
it('calls alertsService.clearAlerts()', function () {
|
48
|
+
scope.syncRecordings();
|
49
|
+
expect(alertsService.clearAlerts).toHaveBeenCalled();
|
50
|
+
$httpBackend.flush();
|
51
|
+
});
|
52
|
+
|
53
|
+
it('sets $scope.syncing to true', function () {
|
54
|
+
scope.syncRecordings();
|
55
|
+
scope.$digest();
|
56
|
+
expect(scope.syncing).toBe(true);
|
57
|
+
expect(element.find('a').length).toBe(0);
|
58
|
+
expect(element.find('p:eq(0)').text()).toContain('Sync in progress.');
|
59
|
+
$httpBackend.flush();
|
60
|
+
});
|
61
|
+
|
62
|
+
it('calls tabloSyncService.syncRecordingings()', function () {
|
63
|
+
scope.syncRecordings();
|
64
|
+
expect(tabloSyncService.syncRecordings).toHaveBeenCalled();
|
65
|
+
$httpBackend.flush();
|
66
|
+
});
|
67
|
+
});
|
68
|
+
});
|
@@ -0,0 +1,26 @@
|
|
1
|
+
describe('tabloSyncService', function () {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
var $httpBackend,
|
5
|
+
tabloSyncService;
|
6
|
+
|
7
|
+
beforeEach(module('ngSanitize',
|
8
|
+
'ac.tabloSyncService'
|
9
|
+
));
|
10
|
+
|
11
|
+
beforeEach(inject(function (_$httpBackend_, _tabloSyncService_) {
|
12
|
+
$httpBackend = _$httpBackend_;
|
13
|
+
tabloSyncService = _tabloSyncService_;
|
14
|
+
}));
|
15
|
+
|
16
|
+
afterEach(function () {
|
17
|
+
$httpBackend.verifyNoOutstandingExpectation();
|
18
|
+
$httpBackend.verifyNoOutstandingRequest();
|
19
|
+
});
|
20
|
+
|
21
|
+
describe('syncData()', function () {
|
22
|
+
it('returns the syncData', function () {
|
23
|
+
expect(tabloSyncService.syncData()).toEqual({});
|
24
|
+
});
|
25
|
+
});
|
26
|
+
});
|
@@ -0,0 +1,28 @@
|
|
1
|
+
describe('tabloService', function () {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
var $httpBackend,
|
5
|
+
tabloService;
|
6
|
+
|
7
|
+
beforeEach(module('ac.tabloConnectApp', 'ac.tabloService'));
|
8
|
+
|
9
|
+
beforeEach(inject(function (_$httpBackend_, _tabloService_) {
|
10
|
+
$httpBackend = _$httpBackend_;
|
11
|
+
tabloService = _tabloService_;
|
12
|
+
}));
|
13
|
+
|
14
|
+
afterEach(function () {
|
15
|
+
$httpBackend.verifyNoOutstandingExpectation();
|
16
|
+
$httpBackend.verifyNoOutstandingRequest();
|
17
|
+
});
|
18
|
+
|
19
|
+
describe('initCopy', function () {
|
20
|
+
it('sets the recording.copy_status to in_progress', function () {
|
21
|
+
$httpBackend.expectGET('/tablo/copy/1234/movie').respond({copy_status: 'in_progress'});
|
22
|
+
var recording = {tablo_id: 1234};
|
23
|
+
tabloService.initCopy(recording, 'movie');
|
24
|
+
$httpBackend.flush();
|
25
|
+
expect(recording.copy_status).toEqual('in_progress');
|
26
|
+
});
|
27
|
+
});
|
28
|
+
});
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module TabloConnect
|
4
|
+
describe Movie do
|
5
|
+
describe "validates presence of tablod_id" do
|
6
|
+
it { is_expected.to validate_presence_of(:tablo_id) }
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "validates uniqueness of tablod_id" do
|
10
|
+
it { is_expected.to validate_uniqueness_of(:tablo_id) }
|
11
|
+
end
|
12
|
+
|
13
|
+
describe ".all_order_title" do
|
14
|
+
let!(:movie1) { FactoryGirl.create(:tablo_connect_movie, title: 'B starts the title') }
|
15
|
+
let!(:movie2) { FactoryGirl.create(:tablo_connect_movie, title: 'A starts the title') }
|
16
|
+
|
17
|
+
it "orders the movies by title" do
|
18
|
+
movies =TabloConnect::Movie.all_order_title
|
19
|
+
expect(movies[0].title).to eq movie2.title
|
20
|
+
expect(movies[1].title).to eq movie1.title
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe ".delete_by_tablo_id" do
|
25
|
+
let!(:movie1) { FactoryGirl.create(:tablo_connect_movie, title: 'B starts the title') }
|
26
|
+
|
27
|
+
it "deletes all for tablo_id provided" do
|
28
|
+
expect{TabloConnect::Movie.delete_by_tablo_id movie1.tablo_id}.to change{TabloConnect::Movie.count}.by -1
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module TabloConnect
|
4
|
+
describe Show do
|
5
|
+
describe "validates presence of tablod_id" do
|
6
|
+
it { is_expected.to validate_presence_of(:tablo_id) }
|
7
|
+
end
|
8
|
+
|
9
|
+
describe "validates uniqueness of tablod_id" do
|
10
|
+
it { is_expected.to validate_uniqueness_of(:tablo_id) }
|
11
|
+
end
|
12
|
+
|
13
|
+
describe ".shows" do
|
14
|
+
let!(:show) { FactoryGirl.create(:tablo_connect_show) }
|
15
|
+
|
16
|
+
it "returns the show name" do
|
17
|
+
expect(TabloConnect::Show.shows.first[0]).to eq show.show
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns the show count" do
|
21
|
+
expect(TabloConnect::Show.shows.first[1]).to be 1
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe ".show_episodes" do
|
26
|
+
let!(:show1) { FactoryGirl.create(:tablo_connect_show, show: "Alf") }
|
27
|
+
let!(:show2) { FactoryGirl.create(:tablo_connect_show, show: "Alf") }
|
28
|
+
let!(:show3) { FactoryGirl.create(:tablo_connect_show) }
|
29
|
+
|
30
|
+
it "returns all shows matching the show parameter" do
|
31
|
+
expect(TabloConnect::Show.show_episodes(show1.show).count).to be 2
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe ".shows_with_image_id" do
|
36
|
+
let!(:show1) { FactoryGirl.create(:tablo_connect_show, show: "Charles in Charge") }
|
37
|
+
let!(:show2) { FactoryGirl.create(:tablo_connect_show, show: "Mr. Belvedere") }
|
38
|
+
let!(:show3) { FactoryGirl.create(:tablo_connect_show, show: "Robotech") }
|
39
|
+
|
40
|
+
it "returns an array of shows" do
|
41
|
+
expect(TabloConnect::Show.shows_with_image_id.count).to be 3
|
42
|
+
end
|
43
|
+
|
44
|
+
it "returns an array of objects with the show name" do
|
45
|
+
expect(TabloConnect::Show.shows_with_image_id.first[:show]).to eq 'Charles in Charge'
|
46
|
+
end
|
47
|
+
|
48
|
+
it "returns an array of objects with the show count" do
|
49
|
+
expect(TabloConnect::Show.shows_with_image_id.first[:count]).to be 1
|
50
|
+
end
|
51
|
+
|
52
|
+
it "returns an array of objects with the image_id" do
|
53
|
+
expect(TabloConnect::Show.shows_with_image_id.first[:image_id]).to eq show1.image_id
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
describe ".delete_by_tablo_id" do
|
58
|
+
let!(:show_to_delete) { FactoryGirl.create(:tablo_connect_show) }
|
59
|
+
|
60
|
+
it "deletes all for tablo_id provided" do
|
61
|
+
expect{TabloConnect::Show.delete_by_tablo_id show_to_delete.tablo_id}.to change{TabloConnect::Show.count}.by -1
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|