Skip to content

Commit bea999e

Browse files
authored
Merge pull request #477 from firebase/release3.3
Release3.3
2 parents eaef32b + 45dee76 commit bea999e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+423
-52
lines changed

README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,17 +63,17 @@ Localized versions of the widget are available through the CDN. To use a localiz
6363
localized JS library instead of the default library:
6464

6565
```html
66-
<script src="https://www.gstatic.com/firebasejs/ui/3.2.0/firebase-ui-auth__{LANGUAGE_CODE}.js"></script>
67-
<link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/3.2.0/firebase-ui-auth.css" />
66+
<script src="https://www.gstatic.com/firebasejs/ui/3.3.0/firebase-ui-auth__{LANGUAGE_CODE}.js"></script>
67+
<link type="text/css" rel="stylesheet" href="https://www.gstatic.com/firebasejs/ui/3.3.0/firebase-ui-auth.css" />
6868
```
6969

7070
where `{LANGUAGE_CODE}` is replaced by the code of the language you want. For example, the French
7171
version of the library is available at
72-
`https://www.gstatic.com/firebasejs/ui/3.2.0/firebase-ui-auth__fr.js`. The list of available
72+
`https://www.gstatic.com/firebasejs/ui/3.3.0/firebase-ui-auth__fr.js`. The list of available
7373
languages and their respective language codes can be found at [LANGUAGES.md](LANGUAGES.md).
7474

7575
Right-to-left languages also require the right-to-left version of the stylesheet, available at
76-
`https://www.gstatic.com/firebasejs/ui/3.2.0/firebase-ui-auth-rtl.css`, instead of the default
76+
`https://www.gstatic.com/firebasejs/ui/3.3.0/firebase-ui-auth-rtl.css`, instead of the default
7777
stylesheet. The supported right-to-left languages are Arabic (ar), Farsi (fa), and Hebrew (iw).
7878

7979
### Option 2: npm Module
@@ -217,8 +217,8 @@ for a more in-depth example, showcasing a Single Page Application mode.
217217

218218
When redirecting back from accountchooser.com or Identity Providers like Google
219219
and Facebook, `start()` method needs to be called to finish the sign-in flow.
220-
If it requires a user interaction to start the initial sign-in process, you need to
221-
check if there is a pending redirect operation going on on page load to check whether `start()`
220+
If it requires a user interaction to start the initial sign-in process, you need to
221+
check if there is a pending redirect operation going on on page load to check whether `start()`
222222
needs to be called.
223223

224224
To check if there is a pending redirect operation to complete a sign-in attempt,

changelog.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
fixed - Removes callback flicker when there is no pending redirect.
2+
fixed - Adds the ability to use spinners instead of progress bars. This is used only for the nascar screen.

javascript/ui/element/elementtesthelper.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,12 @@ firebaseui.auth.ui.element.ElementTestHelper = function(name) {
4444
/**
4545
* Sets the component to test.
4646
* @param {goog.ui.Component} c The component to test.
47+
* @return {!firebaseui.auth.ui.element.ElementTestHelper}
4748
*/
4849
firebaseui.auth.ui.element.ElementTestHelper.prototype.setComponent =
4950
function(c) {
5051
this.component = c;
52+
return this;
5153
};
5254

5355

javascript/ui/page/base.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ goog.require('firebaseui.auth.ui.element.infoBar');
2727
goog.require('firebaseui.auth.ui.element.progressDialog');
2828
goog.require('firebaseui.auth.ui.mdl');
2929
goog.require('goog.dom');
30+
goog.require('goog.dom.classlist');
3031
goog.require('goog.events.Event');
3132
goog.require('goog.object');
3233
goog.require('goog.soy');
@@ -199,12 +200,18 @@ firebaseui.auth.ui.page.Base.prototype.startProcessing_ = function() {
199200
// pages that load quickly do not display the indicator.
200201
var self = this;
201202
this.inProcessing_ = true;
203+
// Check whether component uses default progress bar or spinner for busy
204+
// indicator.
205+
var useSpinner =
206+
goog.dom.classlist.contains(self.getElement(), 'firebaseui-use-spinner');
202207
this.showProcessingTimeout_ = window.setTimeout(function() {
203208
if (!self.getElement() || self.busyIndicator_ !== null) {
204209
return;
205210
}
206211
self.busyIndicator_ = goog.soy.renderAsElement(
207-
firebaseui.auth.soy2.element.busyIndicator, null, null,
212+
firebaseui.auth.soy2.element.busyIndicator,
213+
// Pass whether a spanner is to be used instead of a progress bar.
214+
{useSpinner: useSpinner}, null,
208215
self.getDomHelper());
209216
self.getElement().appendChild(self.busyIndicator_);
210217
firebaseui.auth.ui.mdl.upgrade(self.busyIndicator_);

javascript/ui/page/callback_test.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,24 @@ goog.require('firebaseui.auth.ui.page.Callback');
2323
goog.require('firebaseui.auth.ui.page.PageTestHelper');
2424
goog.require('goog.dom');
2525
goog.require('goog.dom.TagName');
26+
goog.require('goog.testing.MockClock');
2627
goog.require('goog.testing.jsunit');
2728

2829

30+
var mockClock;
2931
var root;
3032
var component;
33+
var pageTestHelper = new firebaseui.auth.ui.page.PageTestHelper()
34+
// Callback already has a progress bar. No need to use
35+
// executePromiseRequest.
36+
.excludeTests('testExecutePromiseRequest_')
37+
.registerTests();
3138

3239

3340
function setUp() {
41+
// Set up clock.
42+
mockClock = new goog.testing.MockClock();
43+
mockClock.install();
3444
root = goog.dom.createDom(goog.dom.TagName.DIV);
3545
document.body.appendChild(root);
3646
component = new firebaseui.auth.ui.page.Callback();
@@ -39,6 +49,9 @@ function setUp() {
3949

4050

4151
function tearDown() {
52+
// Tear down clock.
53+
mockClock.tick(Infinity);
54+
mockClock.reset();
4255
component.dispose();
4356
goog.dom.removeNode(root);
4457
}
@@ -51,7 +64,6 @@ function testCallback_getPageId() {
5164

5265
function testCallback_pageEvents() {
5366
// Run page event tests.
54-
var pageTestHelper = new firebaseui.auth.ui.page.PageTestHelper();
5567
// Dispose previously created container since test must run before rendering
5668
// the component in docoument.
5769
component.dispose();

javascript/ui/page/emailchangerevoke_test.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,30 @@ goog.require('firebaseui.auth.ui.page.EmailChangeRevoke');
2525
goog.require('firebaseui.auth.ui.page.PageTestHelper');
2626
goog.require('goog.dom');
2727
goog.require('goog.dom.TagName');
28+
goog.require('goog.testing.MockClock');
29+
goog.require('goog.testing.events');
2830
goog.require('goog.testing.jsunit');
2931

3032

33+
var mockClock;
3134
var root;
3235
var component;
3336
var formTestHelper = new firebaseui.auth.ui.element.FormTestHelper().
3437
excludeTests('testOnLinkClick_', 'testOnLinkEnter_').
3538
registerTests();
3639
var infoBarTestHelper =
3740
new firebaseui.auth.ui.element.InfoBarTestHelper().registerTests();
41+
var pageTestHelper =
42+
new firebaseui.auth.ui.page.PageTestHelper().registerTests();
3843

3944
var updateClicked;
4045
var onClick;
4146

4247

4348
function setUp() {
49+
// Set up clock.
50+
mockClock = new goog.testing.MockClock();
51+
mockClock.install();
4452
updateClicked = false;
4553
onClick = function() {
4654
updateClicked = true;
@@ -58,10 +66,14 @@ function setUp() {
5866
// Reset previous state of form helper.
5967
formTestHelper.resetState();
6068
infoBarTestHelper.setComponent(component);
69+
pageTestHelper.setClock(mockClock).setComponent(component);
6170
}
6271

6372

6473
function tearDown() {
74+
// Tear down clock.
75+
mockClock.tick(Infinity);
76+
mockClock.reset();
6577
component.dispose();
6678
goog.dom.removeNode(root);
6779
}
@@ -78,7 +90,6 @@ function testEmailChangeRevoke_resetPassword() {
7890

7991
function testEmailChangeRevoke_pageEvents() {
8092
// Run page event tests.
81-
var pageTestHelper = new firebaseui.auth.ui.page.PageTestHelper();
8293
// Dispose previously created container since test must run before rendering
8394
// the component in document.
8495
component.dispose();

javascript/ui/page/emailmismatch_test.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,27 @@ goog.require('firebaseui.auth.ui.page.EmailMismatch');
2525
goog.require('firebaseui.auth.ui.page.PageTestHelper');
2626
goog.require('goog.dom');
2727
goog.require('goog.dom.TagName');
28+
goog.require('goog.testing.MockClock');
2829
goog.require('goog.testing.jsunit');
2930
goog.require('goog.userAgent');
3031

3132

33+
var mockClock;
3234
var root;
3335
var component;
3436
// Test helper for submit button and secondary link.
3537
var formTestHelper =
3638
new firebaseui.auth.ui.element.FormTestHelper().registerTests();
3739
var tosPpTestHelper =
3840
new firebaseui.auth.ui.element.TosPpTestHelper().registerTests();
41+
var pageTestHelper =
42+
new firebaseui.auth.ui.page.PageTestHelper().registerTests();
3943

4044

4145
function setUp() {
46+
// Set up clock.
47+
mockClock = new goog.testing.MockClock();
48+
mockClock.install();
4249
root = goog.dom.createDom(goog.dom.TagName.DIV);
4350
document.body.appendChild(root);
4451
// Render email mismatch page with test helper onSubmit and onLinkClick
@@ -57,12 +64,16 @@ function setUp() {
5764
component.render(root);
5865
formTestHelper.setComponent(component);
5966
tosPpTestHelper.setComponent(component);
67+
pageTestHelper.setClock(mockClock).setComponent(component);
6068
// Reset previous state of form helper.
6169
formTestHelper.resetState();
6270
}
6371

6472

6573
function tearDown() {
74+
// Tear down clock.
75+
mockClock.tick(Infinity);
76+
mockClock.reset();
6677
component.dispose();
6778
goog.dom.removeNode(root);
6879
}
@@ -81,7 +92,6 @@ function testInitialFocus() {
8192

8293
function testEmailMismatch_pageEvents() {
8394
// Run page event tests.
84-
var pageTestHelper = new firebaseui.auth.ui.page.PageTestHelper();
8595
// Dispose previously created container since test must run before rendering
8696
// the component in docoument.
8797
component.dispose();

javascript/ui/page/federatedlinking_test.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,12 @@ goog.require('firebaseui.auth.ui.page.FederatedLinking');
2626
goog.require('firebaseui.auth.ui.page.PageTestHelper');
2727
goog.require('goog.dom');
2828
goog.require('goog.dom.TagName');
29+
goog.require('goog.testing.MockClock');
2930
goog.require('goog.testing.jsunit');
3031
goog.require('goog.userAgent');
3132

3233

34+
var mockClock;
3335
var root;
3436
var component;
3537
var formTestHelper = new firebaseui.auth.ui.element.FormTestHelper().
@@ -39,9 +41,14 @@ var infoBarTestHelper =
3941
new firebaseui.auth.ui.element.InfoBarTestHelper().registerTests();
4042
var tosPpTestHelper =
4143
new firebaseui.auth.ui.element.TosPpTestHelper().registerTests();
44+
var pageTestHelper =
45+
new firebaseui.auth.ui.page.PageTestHelper().registerTests();
4246

4347

4448
function setUp() {
49+
// Set up clock.
50+
mockClock = new goog.testing.MockClock();
51+
mockClock.install();
4552
root = goog.dom.createDom(goog.dom.TagName.DIV);
4653
document.body.appendChild(root);
4754
component = new firebaseui.auth.ui.page.FederatedLinking(
@@ -58,10 +65,14 @@ function setUp() {
5865
formTestHelper.resetState();
5966
infoBarTestHelper.setComponent(component);
6067
tosPpTestHelper.setComponent(component);
68+
pageTestHelper.setClock(mockClock).setComponent(component);
6169
}
6270

6371

6472
function tearDown() {
73+
// Tear down clock.
74+
mockClock.tick(Infinity);
75+
mockClock.reset();
6576
component.dispose();
6677
goog.dom.removeNode(root);
6778
}
@@ -79,7 +90,6 @@ function testInitialFocus() {
7990

8091
function testFederatedLinking_pageEvents() {
8192
// Run page event tests.
82-
var pageTestHelper = new firebaseui.auth.ui.page.PageTestHelper();
8393
// Dispose previously created container since test must run before rendering
8494
// the component in docoument.
8595
component.dispose();

javascript/ui/page/notice_test.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,12 @@ goog.require('firebaseui.auth.ui.page.PasswordResetSuccess');
3232
goog.require('firebaseui.auth.ui.page.UnrecoverableError');
3333
goog.require('goog.dom');
3434
goog.require('goog.dom.TagName');
35+
goog.require('goog.testing.MockClock');
3536
goog.require('goog.testing.jsunit');
3637
goog.require('goog.userAgent');
3738

3839

40+
var mockClock;
3941
var root;
4042
var component;
4143
var formTestHelper = new firebaseui.auth.ui.element.FormTestHelper().
@@ -45,9 +47,14 @@ var infoBarTestHelper =
4547
new firebaseui.auth.ui.element.InfoBarTestHelper().registerTests();
4648
var tosPpTestHelper =
4749
new firebaseui.auth.ui.element.TosPpTestHelper().registerTests();
50+
var pageTestHelper =
51+
new firebaseui.auth.ui.page.PageTestHelper().registerTests();
4852

4953

5054
function setUp() {
55+
// Set up clock.
56+
mockClock = new goog.testing.MockClock();
57+
mockClock.install();
5158
root = goog.dom.createDom(goog.dom.TagName.DIV);
5259
document.body.appendChild(root);
5360
component = new firebaseui.auth.ui.page.PasswordRecoveryEmailSent(
@@ -63,10 +70,14 @@ function setUp() {
6370
formTestHelper.resetState();
6471
infoBarTestHelper.setComponent(component);
6572
tosPpTestHelper.setComponent(component);
73+
pageTestHelper.setClock(mockClock).setComponent(component);
6674
}
6775

6876

6977
function tearDown() {
78+
// Tear down clock.
79+
mockClock.tick(Infinity);
80+
mockClock.reset();
7081
component.dispose();
7182
goog.dom.removeNode(root);
7283
}
@@ -84,7 +95,6 @@ function testInitialFocus() {
8495

8596
function testPasswordRecoveryEmailSent_pageEvents() {
8697
// Run page event tests.
87-
var pageTestHelper = new firebaseui.auth.ui.page.PageTestHelper();
8898
// Dispose previously created container since test must run before rendering
8999
// the component in docoument.
90100
component.dispose();

0 commit comments

Comments
 (0)