@@ -21,6 +21,7 @@ goog.provide('firebaseui.auth.ui.element.TosPpTestHelper');
21
21
goog . setTestOnly ( 'firebaseui.auth.ui.element.TosPpTestHelper' ) ;
22
22
23
23
goog . require ( 'firebaseui.auth.ui.element' ) ;
24
+ goog . require ( 'goog.testing.events' ) ;
24
25
25
26
26
27
goog . scope ( function ( ) {
@@ -37,60 +38,116 @@ goog.inherits(element.TosPpTestHelper, element.ElementTestHelper);
37
38
38
39
/** @override */
39
40
element . TosPpTestHelper . prototype . resetState = function ( ) {
41
+ this . tosLinkClicked_ = false ;
42
+ this . privacyPolicyLinkClicked_ = false ;
40
43
} ;
41
44
42
45
43
- /** Asserts the full message of ToS and Privacy Policy is displayed. */
46
+ /** Handler for ToS link click event. */
47
+ element . TosPpTestHelper . prototype . onTosLinkClick = function ( ) {
48
+ this . tosLinkClicked_ = true ;
49
+ } ;
50
+
51
+
52
+ /** Handler for Privacy Policy link click event. */
53
+ element . TosPpTestHelper . prototype . onPpLinkClick = function ( ) {
54
+ this . privacyPolicyLinkClicked_ = true ;
55
+ } ;
56
+
57
+
58
+ /**
59
+ * Asserts the full message of ToS and Privacy Policy is displayed.
60
+ * @param {?function()|undefined } tosCallback The ToS callback.
61
+ * @param {?function()|undefined } privacyPolicyCallback The Privacy Policy
62
+ * callback.
63
+ */
44
64
element . TosPpTestHelper . prototype . assertFullMessage = function (
45
- tosUrl , privacyPolicyUrl ) {
65
+ tosCallback , privacyPolicyCallback ) {
46
66
var element = this . component . getTosPpElement ( ) ;
47
- if ( ! tosUrl && ! privacyPolicyUrl ) {
67
+ if ( ! tosCallback && ! privacyPolicyCallback ) {
48
68
assertNull ( element ) ;
49
69
} else {
50
70
assertTrue ( element . classList . contains ( 'firebaseui-tospp-full-message' ) ) ;
51
- assertEquals ( tosUrl , this . component . getTosLinkElement ( ) . href ) ;
52
- assertEquals ( privacyPolicyUrl , this . component . getPpLinkElement ( ) . href ) ;
71
+ this . assertTosLinkClicked_ ( ) ;
72
+ this . assertPpLinkClicked_ ( ) ;
53
73
}
54
74
} ;
55
75
56
76
57
- /** Asserts the footer of ToS and Privacy Policy links is displayed. */
77
+ /**
78
+ * Asserts the footer of ToS and Privacy Policy links is displayed.
79
+ * @param {?function()|undefined } tosCallback The ToS callback.
80
+ * @param {?function()|undefined } privacyPolicyCallback The Privacy Policy
81
+ * callback.
82
+ */
58
83
element . TosPpTestHelper . prototype . assertFooter = function (
59
- tosUrl , privacyPolicyUrl ) {
84
+ tosCallback , privacyPolicyCallback ) {
60
85
var element = this . component . getTosPpListElement ( ) ;
61
- if ( ! tosUrl && ! privacyPolicyUrl ) {
86
+ if ( ! tosCallback && ! privacyPolicyCallback ) {
62
87
assertNull ( element ) ;
63
88
} else {
64
89
assertTrue ( element . classList . contains ( 'firebaseui-tos-list' ) ) ;
65
- assertEquals ( tosUrl , this . component . getTosLinkElement ( ) . href ) ;
66
- assertEquals ( privacyPolicyUrl , this . component . getPpLinkElement ( ) . href ) ;
90
+ this . assertTosLinkClicked_ ( ) ;
91
+ this . assertPpLinkClicked_ ( ) ;
67
92
}
68
93
} ;
69
94
70
95
71
- /** Asserts the full message of ToS and Privacy Policy and a notice to the user
72
- * about SMS rates for phone authentication are displayed. */
96
+ /**
97
+ * Asserts the full message of ToS and Privacy Policy and a notice to the user
98
+ * about SMS rates for phone authentication are displayed.
99
+ * @param {?function()|undefined } tosCallback The ToS callback.
100
+ * @param {?function()|undefined } privacyPolicyCallback The Privacy Policy
101
+ * callback.
102
+ */
73
103
element . TosPpTestHelper . prototype . assertPhoneFullMessage = function (
74
- tosUrl , privacyPolicyUrl ) {
104
+ tosCallback , privacyPolicyCallback ) {
75
105
var element = this . component . getTosPpElement ( ) ;
76
106
assertTrue ( element . classList . contains ( 'firebaseui-phone-tos' ) ) ;
77
- if ( ! tosUrl && ! privacyPolicyUrl ) {
107
+ if ( ! tosCallback && ! privacyPolicyCallback ) {
78
108
assertNull ( this . component . getTosLinkElement ( ) ) ;
79
109
assertNull ( this . component . getPpLinkElement ( ) ) ;
80
110
} else {
81
- assertEquals ( tosUrl , this . component . getTosLinkElement ( ) . href ) ;
82
- assertEquals ( privacyPolicyUrl , this . component . getPpLinkElement ( ) . href ) ;
111
+ this . assertTosLinkClicked_ ( ) ;
112
+ this . assertPpLinkClicked_ ( ) ;
83
113
}
84
114
} ;
85
115
86
116
87
- /** Asserts a notice to the user about SMS rates for phone authentication
88
- * and the link of ToS and Privacy Policy are displayed. */
117
+ /**
118
+ * Asserts a notice to the user about SMS rates for phone authentication
119
+ * and the link of ToS and Privacy Policy are displayed.
120
+ * @param {?function()|undefined } tosCallback The ToS callback.
121
+ * @param {?function()|undefined } privacyPolicyCallback The Privacy Policy
122
+ * callback.
123
+ */
89
124
element . TosPpTestHelper . prototype . assertPhoneFooter = function (
90
- tosUrl , privacyPolicyUrl ) {
125
+ tosCallback , privacyPolicyCallback ) {
91
126
var element = this . component . getTosPpElement ( ) ;
92
127
assertTrue ( element . classList . contains ( 'firebaseui-phone-sms-notice' ) ) ;
93
- this . assertFooter ( tosUrl , privacyPolicyUrl ) ;
128
+ this . assertFooter ( tosCallback , privacyPolicyCallback ) ;
129
+ } ;
130
+
131
+
132
+ /**
133
+ * Asserts the onClick callback is triggered when ToS link element is clicked.
134
+ * @private
135
+ */
136
+ element . TosPpTestHelper . prototype . assertTosLinkClicked_ = function ( ) {
137
+ assertFalse ( this . tosLinkClicked_ ) ;
138
+ goog . testing . events . fireClickSequence ( this . component . getTosLinkElement ( ) ) ;
139
+ assertTrue ( this . tosLinkClicked_ ) ;
140
+ } ;
141
+
142
+
143
+ /**
144
+ * Asserts the onClick callback is triggered when Pp link element is clicked.
145
+ * @private
146
+ */
147
+ element . TosPpTestHelper . prototype . assertPpLinkClicked_ = function ( ) {
148
+ assertFalse ( this . privacyPolicyLinkClicked_ ) ;
149
+ goog . testing . events . fireClickSequence ( this . component . getPpLinkElement ( ) ) ;
150
+ assertTrue ( this . privacyPolicyLinkClicked_ ) ;
94
151
} ;
95
152
96
153
@@ -103,11 +160,13 @@ element.TosPpTestHelper.prototype.testGetTosPpElement_ = function() {
103
160
/** @private */
104
161
element . TosPpTestHelper . prototype . testGetTosLinkElement_ = function ( ) {
105
162
assertNotNull ( this . component . getTosLinkElement ( ) ) ;
163
+ this . assertTosLinkClicked_ ( ) ;
106
164
} ;
107
165
108
166
109
167
/** @private */
110
168
element . TosPpTestHelper . prototype . testGetPpLinkElement_ = function ( ) {
111
169
assertNotNull ( this . component . getPpLinkElement ( ) ) ;
170
+ this . assertPpLinkClicked_ ( ) ;
112
171
} ;
113
172
} ) ;
0 commit comments