diff --git a/app/assets/app.css b/app/assets/app.css index b7576bbc5..4c12d4e19 100644 --- a/app/assets/app.css +++ b/app/assets/app.css @@ -49,7 +49,7 @@ md-list .md-button { padding-top: 5px; } -#content .md-button.share { +#content .md-button.contact { background-color: transparent; border: none; width: 48px; @@ -64,7 +64,7 @@ md-list .md-button { margin-top: 10px; } -#content .md-button.share > md-icon { +#content .md-button.contact > md-icon { fill:black; width:36px; height:36px; @@ -76,7 +76,7 @@ md-button.menuBtn > md-icon { height:24px; } -#content .md-button.share:active > md-icon { +#content .md-button.contact:active > md-icon { background-color: #dadada; border-radius: 75%; padding:4px; diff --git a/app/index.html b/app/index.html index f27987818..0f6fcf530 100644 --- a/app/index.html +++ b/app/index.html @@ -40,7 +40,8 @@

Angular Material - Starter App

{{ul.selected.name}}

{{ul.selected.content}}

- + + Contact {{ ul.selected.name }} diff --git a/app/src/users/UserController.js b/app/src/users/UserController.js index 356a6f23b..21b5ce64b 100644 --- a/app/src/users/UserController.js +++ b/app/src/users/UserController.js @@ -21,7 +21,7 @@ self.users = [ ]; self.selectUser = selectUser; self.toggleList = toggleUsersList; - self.share = share; + self.showContactOptions = showContactOptions; // Load all registered users @@ -60,14 +60,14 @@ /** * Show the bottom sheet */ - function share($event) { + function showContactOptions($event) { var user = self.selected; $mdBottomSheet.show({ parent: angular.element(document.getElementById('content')), templateUrl: '/src/users/view/contactSheet.html', - controller: [ '$mdBottomSheet', UserSheetController], - controllerAs: "vm", + controller: [ '$mdBottomSheet', ContactPanelController], + controllerAs: "cp", bindToController : true, targetEvent: $event }).then(function(clickedItem) { @@ -77,15 +77,15 @@ /** * Bottom Sheet controller for the Avatar Actions */ - function UserSheetController( $mdBottomSheet ) { + function ContactPanelController( $mdBottomSheet ) { this.user = user; - this.items = [ + this.actions = [ { name: 'Phone' , icon: 'phone' , icon_url: 'assets/svg/phone.svg'}, { name: 'Twitter' , icon: 'twitter' , icon_url: 'assets/svg/twitter.svg'}, { name: 'Google+' , icon: 'google_plus' , icon_url: 'assets/svg/google_plus.svg'}, { name: 'Hangout' , icon: 'hangouts' , icon_url: 'assets/svg/hangouts.svg'} ]; - this.performAction = function(action) { + this.contactUser = function(action) { $mdBottomSheet.hide(action); }; } diff --git a/app/src/users/view/contactSheet.html b/app/src/users/view/contactSheet.html index e06c302fb..a8adeb55a 100644 --- a/app/src/users/view/contactSheet.html +++ b/app/src/users/view/contactSheet.html @@ -1,12 +1,12 @@ - Contact {{ vm.user.name }}: + Contact {{ cp.user.name }}: - - + + {{item.name}} diff --git a/e2e/pages/ContactUser.js b/e2e/pages/ContactUser.js new file mode 100644 index 000000000..d28eb9f19 --- /dev/null +++ b/e2e/pages/ContactUser.js @@ -0,0 +1,17 @@ +var ContactUser = function() { + + this.load = function() { + return browser.get("/#"); + }; + + this.buttons = function() { + return element.all(by.css('[ng-click="cp.contactWith(item)"]')); + }; + + this.focusedAction = function() { + return browser.driver.switchTo().activeElement().getText(); + } +}; + +module.exports = ContactUser; + diff --git a/e2e/pages/Share.js b/e2e/pages/Share.js deleted file mode 100644 index 513c269f1..000000000 --- a/e2e/pages/Share.js +++ /dev/null @@ -1,14 +0,0 @@ -var Share = function() { - this.load = function() { - browser.get("/#"); - }; - this.actions = function() { - return element.all(by.css('[ng-click="vm.performAction(item)"]')); - }; - this.focusedItem = function() { - return browser.driver.switchTo().activeElement(); - } -}; - -module.exports = Share; - diff --git a/e2e/pages/UserDetails.js b/e2e/pages/UserDetails.js index d3dbaee44..3bfed5795 100644 --- a/e2e/pages/UserDetails.js +++ b/e2e/pages/UserDetails.js @@ -2,7 +2,7 @@ var UserDetails = function() { this.load = function() { browser.get('/#'); }; this.contactUser = function() { - element(by.css('button.share')).click(); + return $('button.contact').click(); }; }; diff --git a/e2e/users/contactUsers.js b/e2e/scenarios/users.js similarity index 55% rename from e2e/users/contactUsers.js rename to e2e/scenarios/users.js index b1526abf3..fd73ee979 100644 --- a/e2e/users/contactUsers.js +++ b/e2e/scenarios/users.js @@ -2,19 +2,18 @@ var UserList = require('../pages/UserList.js'); var UserDetails = require('../pages/UserDetails.js'); -var Share = require('../pages/Share.js'); +var ContactUser = require('../pages/ContactUser.js'); describe('my app', function() { var users = new UserList(); var details = new UserDetails(); - var share = new Share(); + var contact = new ContactUser(); beforeEach(function() { users.loadAll(); details.load(); - share.load(); }); @@ -25,12 +24,16 @@ describe('my app', function() { describe('selecting a user', function() { beforeEach(function() { - details.contactUser(); + return details.contactUser().then(function() { + return contact.load(); + }); }); - it('should set focus on first Share option in Contact Share view', function() { - share.actions().then(function(items) { - expect(items[0].getAttribute('id')).toEqual(share.focusedItem().getAttribute('id')); + it('should set focus on first button in the bottomsheet view', function() { + contact.buttons().then(function(items) { + expect( items.length ).toEqual( 4 ); + + expect( contact.focusedAction() ).toEqual( 'PHONE' ); }); }); diff --git a/package.json b/package.json index baa0de619..c074364cc 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "license": "MIT", "devDependencies": { "karma": "~0.10", - "protractor": "^1.8.0", + "protractor": "^2.0.0", "http-server": "^0.6.1", "bower": "^1.3.1", "shelljs": "^0.2.6",